Polecam obejrzeć o komendzie " strace -e open " http://pclinuxoshelp.com/index.php/Debug_a_Program#Debug_with_strace_command.
Komenda pozwala zobaczyć jakie pliki używa / ładuje dany program.
Ta komenda w tamtym poradniku została wykorzystana przy aplikacjach portable.
Systemy Linuxa czasami umieszczają biblioteki w innych miejscach.
Po przeniesieniu aplikacji, może nie działać, bo nie potrafi znaleźć biblioteki.
Komenda strace potrafi pokazać gdzie program szuka i mozna tam stworzyc link do miejsca gdzie ta biblioteka sie faktycznie znajduje.
W kazdym razie, mozna spróbować to wykorzystać takze w tym przypadku do wyszukania tylko tych z katalogu domowego, jesli sie nie myle ...
strace -e open /sciezka/do/programu 2>&1 | grep ^"/home/"
pavbaranov Masz racje.
Moja komenda nie dziala, bo
- chyba strace zaktualizowali (było "open" / jest "openat")
- nie potrzebnie dalem "^" do wyszukiwaniu na samym poczatku
Poprawiam
strace digikam -qwindowtitle %c 2>&1 | grep open | grep home | grep -v "(No such file or directory)" | sort | uniq
przy czym:
- komenda "digikam -qwindowtitle %c" wziąłem ze skrótu na pulpicie
- komenda " sort " nie zadziala jesli program zamkniemy Ctr+C
- ale program musi sie zakonczyc, lub my musimy go zamknac, aby komenda sort mogla posortowac wynik
- wyjasnienie:
* "2>&1" przekierowuje takze bledy
* "grep open" wyswietla tylko linie z nazwa "open"
* "grep home" wyswietla linie tylko z nazwa "home"
* "grep -v "(No such file or directory)"" omija linie zawierajace "No such file or directory" , a to znaczy po polsku "pliku lub folderu nie znaleziono"
* "uniq" nie wyswietla powtarzajacych sie linii
* W wyniku pliki .Xauthority i .ICEauthority
teoretycznie nie powinny robic roznicy, bo sa wykorzystane przez inne aplikacje,
a co do .gtkrc-2.0 .gtkrc-xfce nie jestem pewien.
W kazdym razie to mnie pokazalo, a kady musi patrzec w swoj wynik idywidualnie.
Moj wynik powyzszej komendy:
$ strace digikam -qwindowtitle %c 2>&1 | grep open | grep home | grep -v "(No such file or directory)" | sort | uniq
openat(AT_FDCWD, "/home/user/.cache/mesa_shader_cache/index", O_RDWR|O_CREAT|O_CLOEXEC, 0644) = 17
openat(AT_FDCWD, "/home/user/.config/qt5ct/qt5ct.conf", O_RDONLY|O_CLOEXEC) = 6
openat(AT_FDCWD, "/home/user/.config/user-dirs.dirs", O_RDONLY|O_CLOEXEC) = 14
openat(AT_FDCWD, "/home/user/.gtkrc-2.0", O_RDONLY) = 10
openat(AT_FDCWD, "/home/user/.gtkrc-xfce", O_RDONLY) = 11
openat(AT_FDCWD, "/home/user/.ICEauthority", O_RDONLY) = 7
openat(AT_FDCWD, "/home/user/.Xauthority", O_RDONLY) = 4
openat(AT_FDCWD, "/home/user/.Xauthority", O_RDONLY) = 8
openat(AT_FDCWD, "/home/user/.Xauthority", O_RDONLY) = 9
I zgadam sie ze komenda strace nie jest tu zbyt potrzebna,
ale chcialem pokazac mozliwosci, bo moze sie komus kiedys przydac do innych programów. ;-)
PS: Nie chce by było jak z okolic Irak / Afganistan. Obsługę czołgu znali tylko dowódcy, bo nie chcieli konkurencji u władzy.
Przyszła wojna, nikt nie potrafił ruszyć pojazdów i wszyscy się poddali.