Wie stelle ich einen guten Link auf /usr/share/applications (Linux, Ubuntu) her?

5 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Yep, brauchst exec-bit.

Siehe: https://wiki.ubuntu.com/SecurityTeam/Policies#Execute-Permission_Bit_Required

In /home oder /tmp braucht .desktop - Datei sogenannte "Ausführrechte" (x) - was verhindern soll, dass eine Datei  gleich nach dem Download einfach so ausgeführt werden kann.

Lösung:

sudo chmod +x /usr/share/application/XXX.desktop

oder für alle:

sudo chmod +x /usr/share/application/*.desktop

So ganz nebenbei: Gerade extra noch mal Ubuntu getestet. Hat geklappt.

Bei Fedora muss die Desktop-Datei aber lustigerweise zum Zeitpunkt des Erstellens des Symboliclinks mir gehören (danach kann ich wieder chown root machen) - wieso auch immer???

selinux natürlich temporär mal ausgemacht.

1

Bei der Erstellung eines Link gilt es zu unterscheiden, ob es ein "weicher" Link (soft link: ln -s existierend neu) oder ein harter Link ist (ln existierend neu).

Sinnvollerweise erstellt man den Link an dem Platz, wo man ihn im Normalfall auch sucht ... in deinem Fall auf dem Desktop. Die Folge müßte also lauten:

cd ~/Desktop   (bei manchen Versionen auch ~/Schreibtisch)
ln -s existierende-Datei gewünschter-name

Einige Distributionen legen auch kleine Dateien an, in denen die erforderlichen Informationen stehen ... die enden oft auf .desktop ... machmal wird diese Endung aber auch nicht angezeigt (obwohl vorhanden).

Bei mir: cat Desktop/Firefox.desktop

[Desktop Entry]
Comment[de]=Firefox Local
Comment=Firefox Local
Exec=firefox
GenericName[de]=Web-Browser
GenericName=Web-Browser
Icon=firefox
MimeType=
Name[de]=Firefox Local
Name=Firefox Local
Path=/home/guenter
StartupNotify=true
Terminal=false
TerminalOptions=
Type=Application
X-DBUS-ServiceName=
X-DBUS-StartupType=
X-KDE-SubstituteUID=false
X-KDE-Username=
X-Ubuntu-Gettext-Domain=desktop_kdebase

Diese Datei hat das Ausführungsbit gesetzt: -rwx.......

Man kann aber auch einen "sym link" direkt auf die ausführbare Datei erstellen ... dafür braucht man nur die Leserechte auf das Programm, da der erstellte Link ja Eigentum des Benutzers ist.

Im Fall von z.B. Firefox könnte man das so machen:

cd ~/Desktop
ln -s /usr/lib/firefox/firefox.sh FireFox

ab /usr/... stehen (bei mir) die Programme ... und der letzte Teil ist der Name, unter dem ich den Feuerfuchs per Klick starten kann.

Hinweis:

Bei einem "sym link" wird die Umgebung eingestellt, welche das Programm benötigt, also auch weitere Dateien und Verzeichnisse.

Bei einem "hard link" läuft das Programm in der Desktop-Umgebung ... damit könnten sich Schwierigkeiten ergeben!


Hallo

Wie stelle ich einen guten Link [....]

Was ist denn ein guter Link und gibt es auch schlechte?

Nun wollte ich auf dem Desktop einen Link anlegen

Das was Du auf dem Desktop anlegst ist kein Link sondern eine Datei welche einen Link beinhaltet.

die Datei wird auch nicht als Code::Blocks sondern als codeblocks.desktop (oder ähnlich) angezeigt,

Das ist die übliche Endung. Es steht Dir natürlich frei diese Umzubenennen. Oder Du legst eine eigene symbolisch gelinkte Datei für das an was Du brauchst:

ln -s /usr/share/application myapplications

oder/und:

ln -s /usr/share/application/codeblocks ~/Desktop/Code::Blocks

Linuxhase

Danke. Schon klar. Es ging aber darum, dass der Link (oder ein Dopple-Klick auf die Datei, die den Link enthält oder wie auch immer) keinen Start des Programms ermöglicht hat. Also die über ln geschaffene Datei hat anders reagiert als das Original, ebenso war die Darstellung des Verzeichnisses anders wenn ich diese über den Link aufgerufen haben als normal über usr/share/applications.

Ich vermute, es ist wie tuxgamer sagt, es fehlt in den Berechtigungsbits noch das X. Ich versuche zumindest das.

1

Wie teile(share) Ich eine pushState URL (dynamisch geladen in ein DIV)?

Hallo,

ich wusste nicht wie Ich den Titel schreiben soll, also sorry.

Ich hab eine .load Funktion, die meine Internetseiten in ein <div> Element ladet. Soweit funktioniert alles und mein Link ändert sich auch via pushState.

Mein Ziel ist es Seiten in mein <div> Element zu laden, jedoch nachdem Laden soll sich die URL ändern so das Ich mein Link weitergeben kann.Also nicht "advlist.cc" sondern "advlist.cc/signup" , das "/signup" Verzeichnis existiert eigentlich nicht, jedoch soll es die Internetseite so öffnen das die "advlist.cc/pages/signup.htm"l Seite angezeigt wird.So wie es jetzt ist kommt bei mir ein 404 Fehler weil dieser Verweis nicht existiert.

Mein Problem:
Auf meine Internetseite gehen https://advlist.cc
auf den Link "Sign Up" klicken und dann den Tab duplizieren bzw die URL in einem neuem Tab öffnen.

	function loadPage(a){
		$("main").load(a);
	}
$("a").click(function(){&nbsp;
    var a = $(this);
    var b = a.attr("id");
    var url = "/pages/" + b + ".html";
    $.getScript("/js/" + b + ".js");
    $("title").text(b);
    history.pushState(url,a,"/signup");
    loadPage(url);
});

...zur Frage

Wie steige ich gut in die GUI-Programmierung unter Windows mit C++ ein?

Ich habe vor einigen Jahren als Schüler mit MS-DOS-bezogene IDE/Programmierwerkzeuge programmiert (Borland Turbo Pascal mit diesem Turbo Vision, wenn noch bekannt) und bin (hobbymäßig) inzwischen auf C++ umgestiegen. Ich benutze Code::Blocks (habe auch Dev und .NET).

Sofern man Anwendungen programmiert, komme ich an meiner GUI Windows nicht mehr vorbei, ich will nicht alles Console Application programmieren.

Das Buch von Jürgen Wolf, das ich gerade habe, empfiehlt QT. Ich hatte mich früher mal in MFC hingeschaut. Oder soll ich einfach mit WindowsForms unter .NET anfangen?

Allgemeine Frage: Wie gehe ich am Besten vor? Welche Bibliothek empfiehlt Ihr? Wisst Ihr ein gutes Buch, um in C++ für Windows Fuß zu fassen? Ich will es auch halbwegs verstehen und nicht nur Schritte auswendig lernen / nachschreiben.

...zur Frage

Datei auf Raspberry Pi kopieren

Hey Linux-Kenner,

ich habe ein Problem! Ich möchte eine Datei (von meinem Win Desktop) auf meinen Raspberry Pi kopieren, bekomme aber, nachdem ich das PW richtig eingebe, den Fehler, dass die Datei auf meinem Desktop nicht gefunden wird.

Hier mein Code:

scp -r /Users/XY/Desktop/test.py pi@192.168.1.1:/home/pi/web2py/applications/xy/modules

Er findet also test.py nicht..

Ich hoffe jemand kennt sich damit aus! Danke (:

...zur Frage

Linux Home Backup + komprimierung?

Hallo,
Momentan sichere ich mein Home Verzeichnis (/home/richard) mit rsync (mithilfe von luckyBackup) auf meine externe Festplatte (/media/richard/BackupFestplatte/Backup). Dabei werden sämtliche Rechte, etc erhalten.
2 Verzeichnisse werden ausgeschlossen (/home/richard/.steam & /home/richard/.kde/share/apps/kwallet).

Jetzt hätte ich das gerne so, dass in /media/richard/BackupFestplatte/Backup/ nicht nur eine „Spiegelung“ meines Homeverzeichnisses (mit ausnahme der 2 Verzeichnisse ist) sondern mehrere komprimierte Versionen.
Also dass nicht nur die aktuelle Version da ist, sondern auch noch alle ältere.
(Bsp: da sind dann Backup20.06.2018_16:41.tar und Backup01.07.2018_10:20.tar)

Es soll also das selbe wie bisher passieren (mit Rechte erhalten, Verzeichnisse ausschliesen, etc) nur eben dass kein Ordner rauskommt, sondern ein komprimiertes Archvis, dass einen „Zeitstempel“ im Namen hat (zB 20.06.2018_16:41 oder so), sodass es nicht jedesmal die vorherige Version überschreibt.
Auch cool wärs, wenns zB nach 10 Backups immer das älteste wieder löscht. (Wobei das dann vermutlich wieder ne andere Baustelle wird, ist auch erstmal egal).
Das Sahnehäupchen wär natürlich ein Fortschrittsbalken in %

Das ganze würd ich dann in ein Shellscript packen

Ich hoffe es war einigermaßen verständlich

Viele Dank für jede Hilfe

PS: mit „tar“ komm ich bisher noch nicht ganz klar. Erhält es da die Rechte, etc? Kann man da (mehrere) Verzeichnisse ausschließen? Wie bekommt man einen Zeitstempel in den Namen?

...zur Frage

Linux Mint Menu Fehler (Anwendungen nicht sichbar/Fehlercode)?

Seit einiger Zeit kommt nach dem normalen Anmelden bei Linux Mint (Rosa 17.3) die folgende Fehlermeldung in einem Fenster: Modul konnte nicht initialisiert werden applications : Traceback (most recent call last):

File "/usr/lib/linuxmint/mintMenu/mintMenu.py", line 320, in PopulatePlugins MyPlugin.do_plugin()

File "/usr/lib/linuxmint/mintMenu/plugins/applications.py", line 1326, in do_plugin self.Todos()

File "/usr/lib/linuxmint/mintMenu/plugins/applications.py", line 584, in Todos self.buildButtonList()

File "/usr/lib/linuxmint/mintMenu/plugins/applications.py", line 614, in buildButtonList self.updateBoxes(False)

File "/usr/lib/linuxmint/mintMenu/plugins/applications.py", line 1733, in updateBoxes item["button"] = MenuApplicationLauncher( item["entry"].get_desktop_file_path(), self.iconSize, item["category"], self.showapplicationcomments, highlight=(True and menu_has_changed) )

File "/usr/lib/linuxmint/mintMenu/plugins/easybuttons.py", line 482, in __init__ ApplicationLauncher.__init__( self, desktopFile, iconSize )

File "/usr/lib/linuxmint/mintMenu/plugins/easybuttons.py", line 254, in __init__ desktopItem = xdg.DesktopEntry.DesktopEntry( desktopFile )

File "/usr/lib/python2.7/dist-packages/xdg/DesktopEntry.py", line 33, in __init__ self.parse(filename)

File "/usr/lib/python2.7/dist-packages/xdg/DesktopEntry.py", line 42, in parse IniFile.parse(self, file, ["Desktop Entry", "KDE Desktop Entry"])

File "/usr/lib/python2.7/dist-packages/xdg/IniFile.py", line 81, in parse raise ParsingError("Invalid line: " + line, filename)

ParsingError: ParsingError in file '/usr/share/applications/mate-terminal.desktop', Invalid line:

Außerdem werden im Menü keine Anwendungen oder Favoriten angezeigt. mintmenu --reset und mate-panel --reset zeigen keine positive Wirkung, das Menü-Icon verschwindet entweder ganz und lässt sich auch nicht über die Windows-Taste auf der Tastatur aufrufen oder erscheint nur teilweise und nichts lässt sich darin anklicken. Habe das Internet schon ein bisschen durchstöbert und in englischen Foren einige weitere Lösungsansätze ausprobiert, aber nichts hat geholfen. Wenn jemand ein Ähnliches Problem hatte und es irgendwie gelöst hat oder weiß was zu tun ist, lasst es mich bitte wissen! LG Shade

...zur Frage

(lejos installieren) jni.ht not found - was tun?

Ich bin gerade dabei, mir lejos für meinen NXT 2.0 (nicht ev3!) zu installieren.


  • Ich benutze XUbuntu 16.10
  • Ich benutze eclipse, selbst gedownloadet, nicht über die offiziellen Paket-Repositories sondern über die Seite des Herstellers

Ich habe folgendes Tutoriel befolgt: https://wiki.ubuntuusers.de/Archiv/LeJOS_f%C3%BCr_Lego_NXT/ . Hier noch mal in Kurzform, was ich getan habe:

  1. Ich habe folgende Codezeile wie angegeben in der Konsole ausgeführt:

    sudo apt-get install build-essential ant libusb-dev libbluetooth-dev 
  2. Ich habe mir die Datei - sie heißt leJOS_NXJ_0.9.1beta-3.tar - gedownloadet, sie in meinem Homeverzeichnis entpackt und mittels des mv-Kommandos nach /opt/ verschoben und anschließend zu lejos_nxj umbenannt. (Das scheint stillschweigend vorausgesetzt worden zu sein, da im Code für die .profile-Datei zuerst diese Zeile steht:

    export NXJ_HOME=/opt/lejos_nxj
  3. Ich habe die angegebenen Zeilen an die Datei .profile im Homeverzeichnis angelegt.

  4. Ich habe den Befehl sudo ant im angegebenen Verzeichnis ausgeführt.


Dabei kam es zu der Fehlemeldung:

Unable to locate tools.jar. Expected to find it in /usr/lib/jvm/java-8-openjdk-i386/lib/tools.jar

Buildfile: /opt/lejos_nxj/build/build.xml

jlibnxt:

clean:

jlibnxt:
       [cc] 1 total files to be compiled.
       [cc] In file included from /opt/lejos_nxj/build/libnxt/main_jlibnxt.c:30:0:
       [cc] /opt/lejos_nxj/build/libnxt/jlibnxt.h:2:17: fatal error: jni.h: Datei oder Verzeichnis nicht gefunden
       [cc]  #include <jni.h>
       [cc]                  ^
       [cc] compilation terminated.

BUILD FAILED
/opt/lejos_nxj/build/build.xml:87: The following error occurred while executing this line:
/opt/lejos_nxj/build/libnxt/build.xml:39: gcc failed with return code 1

Total time: 3 seconds

Hinweis: Die Datei heißt eigentlich (Eine Java-Schnittstelle für C-Code), GF hat aus den spitzen Feilen aber html-Encodings gemacht.


Was soll ich tun? Woanders gab es immer Empfehlungen, jdk-7 oder 6 zu installieren, aber es hat nie funktioniert.

Ich bin dankbar für jede Antwort!

...zur Frage

Was möchtest Du wissen?