ubuntuusers.de

~/bin standardmäßig nicht in PATH

Status: Gelöst | Ubuntu-Version: Ubuntu 20.04 (Focal Fossa)
Antworten |

moro11

Anmeldungsdatum:
29. Mai 2020

Beiträge: 65

Ich habe gerade auf einem neuen Rechner Ubuntu 20.04 installiert und anschließend MiKTeX. Dabei kam von MiKTeX ein Warnung, dass die Installation nicht erreichbar sei, da ~/bin nicht in PATH enthalten sei. Ich hatte auf meinem alten Rechner in ~/bin sämtliche selbsterstellten Shell-Skripte liegen, und soweit ich weiß ist das auch das Standart-Verzeichnis für Programme die nur lokal für den aktuellen Benutzer installiert werden. Ich kann mich nicht mehr dran erinnern ob auf meinem alten Rechner (Ubuntu 18.04) ~/bin zu Beginn ebenfalls nicht in PATH war oder ob ich es manuell hinzugefügt habe.

Das Problem lässt sich natürlich leicht beheben, indem man das Verzeichnis zu PATH hinzufügt, aber darum geht es gar nicht. Ich war schlicht verwundert warum ~/bin in Ubuntu 20.04 nicht standardmäßig in PATH enthalten ist. Für mich macht es auf den ersten Blick in keinen Sinn, da so nur global installierte Programme erreichbar sind. Dennoch wird das ja einen Grund geben, dass es so gemacht wurde. Deshalb meine Frage:

Gibt es Gründe warum ~/bin nicht direkt in PATH enthalten ist, bzw. gibt es Gründe, warum ~/bin womöglich gar nicht in PATH enthalten sein sollte? (Die gleiche Frage gilt auch für ~/.local/bin.)

Bonusfrage, wenn wir schon beim Thema sind: Gibt es einen Unterschied zwischen ~/bin und ~/.local/bin oder zumindest einen Anhaltspunkt/Regel, welche Binarys in welches Verzeichnis gehören?

Moderiert von sebix:

Thema in einen passenden Forenbereich verschoben. Bitte beachte die als wichtig markierten Themen („Welche Themen gehören hier her und welche nicht?“) in jedem Forenbereich. Danke.

Doc_Symbiosis

Avatar von Doc_Symbiosis

Anmeldungsdatum:
11. Oktober 2006

Beiträge: 4453

Wohnort: Göttingen

Zu deiner Bonusfrage: unter ~/.local/bin liegen die Binaries, die nur unter dem benutzer installiert wurden, so z.B. wenn man ansible unter einem Nicht-Root Benutzer installiert, landen die zugehörigen Binaries unter ~/.local/bin. ~/bin ist dann eher für deine eigenen Binaries gedacht.

ML9104

Anmeldungsdatum:
8. Juni 2019

Beiträge: 356

Du hast erstmals ein riesenproblem mit "~"

"~" (wie in ~/bin) wird nur von einem shell interpretiert und ist im OS unbekannt. "~" ist eine schlaue shortcut, sollte man einen Amerikanischen tastatur haben, aber nur bei texteingabe im terminal. Beim Europäisches keyboard ist es käse.

"~" hat NICHTS zu suchen in konfigurations- (oder andere) dateien jeglicher art. Die richtige variable ist $HOME was auch in sh, bash etc. so übersetzt wird.

moro11

(Themenstarter)

Anmeldungsdatum:
29. Mai 2020

Beiträge: 65

@Doc_Symbiosis alles klar, das ist schonmal gut zu wissen, danke

@ML9104 Jo, das ist mir klar, wenn man ~/bin zu PATH hinzufügt dann mit export 'PATH=$HOME/bin:$PATH'>> ~/.bash_profile oder etwas ähnlichem. Im PATH hat ~ natürlich nichts zu suchen.

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13219

moro11 schrieb:

Ich habe gerade auf einem neuen Rechner Ubuntu 20.04 installiert und anschließend MiKTeX. Dabei kam von MiKTeX ein Warnung, dass die Installation nicht erreichbar sei, da ~/bin nicht in PATH enthalten sei.

Das liegt daran, dass ~/bin nach der Installation nicht existiert und Du es vermutlich noch nicht angelegt hattest. Sobald Du das anlegst, Dich abmeldest und wieder anmeldest, ist es auch in $PATH. Dafür verantwortlich sind die Zeilen 20 bis 22 in ~/.profile. Diese Datei findet sich auch in /etc/skel, von wo sie beim Anlegen eines Benutzers kopiert wird.

Gibt es Gründe warum ~/bin nicht direkt in PATH enthalten ist, bzw. gibt es Gründe, warum ~/bin womöglich gar nicht in PATH enthalten sein sollte? (Die gleiche Frage gilt auch für ~/.local/bin.)

s.o. Wenn das Verzeichnis nicht existiert, macht es keinen Sinn, es in PATH aufzunehmen.

Bonusfrage, wenn wir schon beim Thema sind: Gibt es einen Unterschied zwischen ~/bin und ~/.local/bin oder zumindest einen Anhaltspunkt/Regel, welche Binarys in welches Verzeichnis gehören?

Als Benutzer legt man nix nach ~/.local. Da findet sich bei mir nur "share" und darunter dann jede Menge Verzeichnisse, die Programme angelegt haben um Dinge zu speichern.

moro11

(Themenstarter)

Anmeldungsdatum:
29. Mai 2020

Beiträge: 65

rklm Hervorragende Antwort, danke. Jetzt bin ich mit der Welt wieder zufrieden. Habe es gerade auch gecheckt, inzwischen ist ~/bin in PATH enthalten, ohne das ich es bisher hinzugefügt hätte. Mit Neustart hat sich das tatsächlich geklärt.

Antworten |