Witam,
jest ffmpeg skompilowany ze źródeł. Nie znajduje sie w /usr/bin i nie wiem dokładnie gdzie się znajduje problem obecnie dotyczy ffmpeg and pytanie zadam ogóle.
Jeśli wykonuję polecenie np: ffmpeg i działa ono jako root a jako użytkownik pokazuje sie:
ffmpeg: command not found
Co należało by sprawdzić poprawić w systemie? Gdzie jest zapisana informacja o komendach np: ffmpeg
root widzi komend
Po wydaniu polecenia w poszukiwaniu programu sprawdzane są katalogi zawarte w zmiennej PATH, możesz wyświetlić jej zawartość wykonując polecenie:
Zmienna ta przyjmuje różne wartości dla roota i dla zwykłego użytkownika. Zmienna PATH dla roota zawiera 3 dodatkowe katalogi:
W tych lokalizacjach zawarte są programy służące do uruchomienia lub zmiany konfiguracji systemu. Do poprawnego działania wymagają uprawnień root'a, więc zwykłemu użytkownikowi i tak się nie przydadzą.
Programy instalowane ze źródeł poleceniem:
zazwyczaj (to zależy od autora źródeł, developerzy Debiana nie wiele mają tu do powiedzenia) instalowane są w drzewie:
W związku z tym poszukiwania programu zacząłbym w katalogach:
W tym przypadku najbardziej poprawny jest ten pierwszy. Jak widać powodów problemu może być kilka (przynajmniej 2). Zacznij od zlokalizowania programu, powinien znajdować się w /usr/local/bin. Jeżeli tam jest to sprawdź swoją zmienną PATH, wcześniej napisałem jak sprawdzić jej zawartość. Jeżeli jakimś cudem brakuje Ci tam /usr/local/bin, to edytuj plik:i zmień odpowiednią linijkę. U mnie jest to linia 7:
To krótki plik, jak go przejrzysz powinieneś połapać się co i jak. Jeżeli program zainstalował się gdzieś indziej, to albo go przeinstaluj (tutaj napisane jak zmienić katalog instalacyjny: http://trac.ffmpeg.org/wiki/CompilationGuide/Generic niestety trzeba to zrobić na poziomie configure), albo dodaj katalog gdzie zainstalowany jest program do zmiennej PATH, wyżej napisałem co i jak.
Kod: Zaznacz cały
echo $PATH
Kod: Zaznacz cały
/usr/local/sbin
/usr/sbin
/sbin
Programy instalowane ze źródeł poleceniem:
Kod: Zaznacz cały
make install
Kod: Zaznacz cały
/usr/local
Kod: Zaznacz cały
/usr/local/bin
/usr/local/sbin
Kod: Zaznacz cały
/etc/profile
Kod: Zaznacz cały
PATH="[B]/usr/local/bin[/B]:/usr/bin:/bin:/usr/local/games:/usr/games"
Można również użyć polecenia whereis
Kod: Zaznacz cały
whereis [color=#333333]ffmpeg[/color]
- LordRuthwen
- Moderator
- Posty: 2324
- Rejestracja: 18 września 2009, 21:45
- Lokalizacja: klikash?
Generalnie do tego służy polecenie
Przyczyną tego, że root widzi a użytkownik nie tost pewnie to, że plik znajduje się w sbin a nie w bin, czyli wymaga podniesienia uprawnień do wykonania.
Kod: Zaznacz cały
type
Kod: Zaznacz cały
type avconv
avconv jest /usr/bin/avconv
jeśli wiesz gdzie jestr dany program np w sbin, a root go widzi a TY nie to możesz spróbować zastartować go z pełną ścieżką = tam gdzie się on znajduje...
Co nie oznacza, że będzie pracował tak jak spod roota. Bo część programów wymaga roota aby działało z racji że wywołują pewne funkcje.
Kod: Zaznacz cały
$/sbin/program