Punktkommando

McSnoop

Well-Known Member
Ich glaube ich werde gleich wieder geschlagen wenn ich sowas frag, aber wenns mir einer beantwortet frag ich es ja nicht mehr.

installiertes Prog via

make install clean

läßt sich nur ausführen wenn ich direkt in dem ordner bin und dann

./<name des proggies>

eingebe.

Was muss ich tun damit ich einfach eine Shell aufmachen kann und da den Name eintippe und er macht mir es auf?

Bzw was muss ich machen damit die Programme die installiert werden auch im Gnomemenü auftauchen?

Gruß Snoop
 
Führe mal als root folgendes aus:
rehash

Danach mit dem User der das Proggi ausführen soll neu (!) einloggen und dann sollte der Aufruf klappen.

Viele Grüße,
Durandal
 
Hammer das klappt. Was macht Rehash?

kannst du darüber einen kurzen Abriss geben. In der manpage steht da nicht so viel drinnen.
 
Naja was es macht hast ja gesehen. Die Hintergründe dazu kenne ich nicht, aber sollte wohl nicht zu schwer sein rauszufinden. ;-)
 
hmm hab grad festgestellt das dies aber keine Dauerlösung ist. Shell wieder geschlossen, neue Shell geöffnet und schon gehts nicht mehr. =(

rehash eingegeben und danach gehts wieder aber nur solange die Shell da ist.
 
"als root ausfuehren", so ein Schwachfug. "rehash" ist ein internes Kommando der csh/tcsh und "hashed" alle Dateien in $PATH neu, damit sie auch gefunden werden. sh-Abkoemmlinge brauchen das nicht. root hat damit garnix zu tun.
 
Ciao,

editiere dein $HOME/.cshrc und füge einen . (Punkt) grad' als erstes nach der Klammer ein:

set path = (. /sbin /bin /usr/sbin ............)

Anschliessend in derselben Shell "source $HOME/.cshrc" und dein Progi sollte ab jetzt immer gefunden und gestartet werden. Auch wenn du dich neu einloggst :)

Greetz Marcel
 
Hi

Das halte ich nicht für besonders clever. Das Filesystem hat nicht ohne Grund eine Ordnung. Die ausführbaren Binaries der Programme sollen im entstprechenden bin- oder sbin-Verzeichnis liegen. Und diese gehören in die Umgebungsvariable $PATH aufgenommen. Nimmt man curdir (der ".") dazu ändert das ohnehin nichts an McScnoops Problem, da er ja nachwievor in das Verzeichnis wechseln müßte in dem die ausführbare Datei zu finden ist. Er soll halt einfach $PATH ordentlich setzen (und eventuell mit Hilfe von rehash den Pfad neu einlesen lassen - je nach verwendeter Shell), dann wird das schon alles richtig funktionieren.

Gruß
 
Ciao,

.mp hat natürlich Recht ... Ich war in der Annahme, dass es McSnoop um "Punktkommandsos" im aktuellen Verzeichnis geht... Na ja, wer lesen kann, ist klar im Vorteil :grumble:

Also, Korrektur meinerseits. In der Annahme, dass du die c-shell gebrauchst, müsstest du folgendes tun:

vi $HOME/.cshrc und dort die Zeile "set path" ergänzen:

set path = (/sbin /bin /usr/sbin .... /pfad/zum/programm)

Ein nachfolgender "rehash" oder "source $HOME/.cshrc" lösen deine "Probleme". Fall's du eine andere Shell verwendest, so helfen dir die man-pages.

So, nun aber viel Erfolg :)

Greetz Marcel
 
gut wenn ich die path setzen soll ist ok. Ist es egal wie viele pfadangaben unter Path stehen? Weil wenn man eine ganze menge proggies hat dann müssen die ja alle dann da drinnen stehen oder?
 
Also eine genaue Anzahl kann ich dir jetzt nicht gerade nennen, wieviel der "path" vertragen kann. Sicher genügend :cool:

Sofern du viele verschiedene Programme installierst, und du nicht immer den PATH anpassen möchtest, würde ich dir empfehlen, in deinem HOME ein script-verzeichnis
anzulegen. Dort machst du dir dann pro Programm ein eigenes Script, in welchem der genaue Pfad und eventuelle Startoptionen drinnen stehen. Dann musst du in deinem .cshrc nur noch $HOME/scripts nachtragen und alles ist paletti :)

Ich mach's jedenfalls so ...

Greetz
 
McSnoop said:
gut wenn ich die path setzen soll ist ok. Ist es egal wie viele pfadangaben unter Path stehen? Weil wenn man eine ganze menge proggies hat dann müssen die ja alle dann da drinnen stehen oder?
Das ist theoretisch egal. Aber nochmal zum Verständnis. In der Variable $PATH werden Verzeichnisse angegeben, die die Shell nach dem auszuführenden Programm in der Reihenfolge ihrer Nennung in $PATH absucht. Du muss also nicht für jedes Programm unter z.B. /usr/local/bin den Pfad angeben, das Verzeichnis wo sie drinnliegen reicht.
'echo $PATH' (bei sh und deren Abkömmlinge) zeigt dir den aktuellen Pfad an.

Gruß c.
 
MrFixit said:
"rehash" ist ein internes Kommando der csh/tcsh und "hashed" alle Dateien in $PATH neu, damit sie auch gefunden werden. sh-Abkoemmlinge brauchen das nicht.
Übrigens gibt es diesen Befehl bei zsh auch; dort muss man ihn vorher verwenden, wenn man neue Programme über die automatische Vervollständigung erreichen möchte.

Björn
 
Back
Top