Strona 1 z 2

Jak sprawdzić gdzie dany program przechowuje swoje dane/pliki konfiguracyjne?

: 30 października 2010, 12:35
autor: Kamil1000
Czy istnieje jakiś sposób, aby sprawdzić, gdzie dany program przechowuje swoje dane czy też pliki konfiguracyjne, itp.?

: 30 października 2010, 13:01
autor: mlodir
może np. komendą:

Kod: Zaznacz cały

whereis nazwa_programu

: 30 października 2010, 13:05
autor: Kamil1000
Niestety, ale:

Kod: Zaznacz cały

~ $ whereis angrybirds
-sh: whereis: not found
~ $
A w repozytorium Debiana czy też Maemo nie widzę czegoś takiego jak whereis, choć na komputerze to polecenie mi działa...

: 30 października 2010, 15:38
autor: lessmian2

Kod: Zaznacz cały

dpkg -L nazwa_programu
dpkg -S jakiśprogram.conf
Pierwsze wyświetli wszystkie pliki zainstalowane wraz z paczką X, drugie wyświetli nazwę paczki w której jest podany plik.

: 30 października 2010, 16:52
autor: Kamil1000
Pierwsze polecenie wypisuje tyle tego, że nie widać wszystkiego. A drugie nic nie znajduje.

: 30 października 2010, 18:06
autor: lessmian2
Aha, ok. I?

To już Twój problem aby z wyników pierwszego polecenia wyłuskać przydatne dla siebie informację. Skąd ktoś ma wiedzieć czego Ty szukasz? Nie możesz użyć np. grepa?

: 31 października 2010, 10:03
autor: fnmirk
&quot pisze:Nie możesz użyć np. grepa?
Albo programu pozwalającego na przewijanie informacji wyświetlanych w konsoli. Np. less. Można też wynik przekierować do pliku tekstowego i wygodnie analizować w jakimś edytorze, nawet w innym systemie operacyjnym.

: 31 października 2010, 11:58
autor: giaur
Szkoda tylko, że to na nic, bo pliki konfiguracyjne są tworzone przy uruchomieniu programu, a nie ma ich w pakiecie instalacyjnym. Można by próbować przez lsof, ale z tego co wiem, pliki konfiguracyjne są czytane przy starcie, a potem zamykane - więc to raczej tez na nic.

Spróbuj tak po uruchomieniu programu:

Kod: Zaznacz cały

lsof | grep angrybirds | grep /home
Polecenie to pokaże, jakich plików z katalogu /home w używa danym momencie program angrybirds.

Jeżeli to nie pokaże nic interesującego, to pozostaje tylko zajrzeć w kod programu, albo użyć debuggera, na przykład gdb ale to już znacznie trudniejsze.

P.S.
Polecenie whereis jest w pakiecie util-linux

: 31 października 2010, 12:12
autor: lessmian2
giaur pisze:Szkoda tylko, że to na nic, bo pliki konfiguracyjne są tworzone przy uruchomieniu programu, a nie ma ich w pakiecie instalacyjnym.
Chyba nie do końca jest tak, jak waść piszesz:

Kod: Zaznacz cały

# dpkg -S apache2.conf
apache2.2-common: /usr/share/doc/apache2.2-common/examples/apache2/apache2.conf.gz
apache2.2-common: /etc/apache2/apache2.conf
# dpkg -S my.cnf
mysql-common: /etc/mysql/my.cnf
Kamil1000, napisz może o jaki program Ci chodzi i czy w ogóle jest on zainstalowany z repozytorium/paczki deb.

: 31 października 2010, 12:49
autor: giaur
Kolego... apache to wyjątek, bo musi posiadać domyślną konfigurację. Żaden program, który trzyma ustawienia w katalogu /home/.nazwaprogramu nie ma domyślnych plików konfiguracyjnych. Po prostu tego tak się nie robi bo nie ma takiej potrzeby. 99.9 % programów przy uruchamianiu sprawdza czy jest katalog ~/.nazwaprogramu a w nim konfiguracja - jeśli nie ma, to jest taki katalog tworzony i zapisywana jest konfiguracja domyślna, jeśli jest- konfiguracja jest odczytywana. Użytkownik z reguły nie musi/nie powinien grzebać tam samodzielnie (analogia do rejestru windows).

Apache, mysql to wyjątki, bo:
- nie działają z prawami użytkownika aktualnie zalogowanego.
- ustawienia nie są spersonalizowane dla różnych użytkowników. Konfiguracja jest jedna. I jest zawarta w specjalnym pliku, który jest do edycji przez administratora serwera i jest to jedyny sposób konfiguracji usługi.

Od razu widać, że mało używasz Linuksa jako systemu desktopowego i siedzisz raczej w serwerach jeśli takich rzeczy nie wiesz. Jeśli mi nie wierzysz, to sprawdź sobie jakikolwiek program użytkowy - np. kadu, audacious, kwrite itd.