Sysadmin2, Książki i magazyny, Linux, linux magazine
[ Pobierz całość w formacie PDF ]
Warsztat admina
SYSADMIN
Dzień z życia administratora: Checkinstall
Droga ucieczki
Większość programów, którymi zaj-
mujemy się w tej kolumnie, dostępna
jest jedynie w postaci kodu źródłowe-
go. Oczywiście nie ma w tym nic złe-
go, ponieważ ich kompilacja i instala-
cja jest zazwyczaj bardzo prosta. Jed-
nak większość programistów zapomi-
na o tym, że czasem potrzebne jest
również polecenie make uninstall...
CHARLY KÜHNAST
O
programowanie dystrybuowane
nie tylko monitoruje, gdzie zostaną skopiowa-
ne pliki wykonywalne przy instalacji, ale także
przechwytuje kopiowane pliki i tworzy z nich
niewielki pakiet RPM, DEB albo TGZ dla
Slackware. Pakiet stworzony w ten sposób
można instalować przy użyciu narzędzia (np.
rpm, dpkg...) specyficznego dla danej dystry-
bucji. Podobnie jest z usuwaniem pakietów –
wystarczy użyć standardowego narzędzia do
obsługi pakietów.
chwytuje polecenia wykonywane na systemie
plików przez cp czy mv i przy użyciu prze-
chwyconych danych buduje pakiet RPM.
Mogę teraz zainstalować taki pakiet, a jeśli
będę się chciał pozbyć DNRD w przyszłości,
będę mógł to zrobić poleceniem rpm --erase
nazwapakietu.
Co stanie się, jeśli nasze magiczne polecenie
to nie make install, ale make all? Po prostu do-
dajemy to nietypowe polecenie do listy opcji
Checkinstall:
w postaci kodu źródłowego jako
archiwum tar zazwyczaj instaluje-
my w następujący sposób: czytamy pliki RE-
ADME oraz INSTALL (o ile istnieją), a na-
stępnie wykonujemy magiczne polecenia
./configure; make; make install i wszystko
powinno działać.
Niestety, szukając i testując nowe progra-
my, instaluję wiele aplikacji, które okazują się
być zupełnie nieprzydatne. Dlatego chciałbym
mieć możliwość łatwego pozbycia się takich
programów. Gdzie są binaria skopiowane po-
leceniem make install? Dlaczego twórca pro-
gramu nie umieścił w pliku Makefile opcji
uninstall? Rozwiązaniem tego problemu jest
Checkinstall.
Praktyczna aplikacja
Chcąc wypróbować działanie Checkinstall,
użyłem go do kompilacji i instalacji pakietu
(./configure; make; make install) DNRD (jest
to DNS-Proxy [3]). Po rozpakowaniu archi-
wum przechodzimy do nowo powstałego kata-
logu dnrd-2.13 iwykonujemy polecenia:
checkinstall --type=rpm make all
Ponieważ zazwyczaj korzystam z domyślnych
ustawień, jeśli chodzi opołożenie ścieżek, uży-
wam parametru --default. Dzięki temu Chec-
kinstall nie zamęcza mnie za każdym razem
takimi pytaniami. Użytkownicy Slackware
muszą jednak uważać na pewną pułapkę – je-
śli używasz Slackware w wersji 8.1 lub now-
szej, musisz określić parametr --newslack, aby
Checkinstall nie używał starego formatu pa-
kietów TGZ.
Installwatch
Zamiast uciążliwego ręcznego usuwania nie-
potrzebnych programów, wykorzystuję do te-
go celu narzędzie Installwatch [1], które in-
formuje mnie, jakie pliki (i gdzie) zostaną
skopiowane po wykonaniu polecenia make
install. Mimo że Installwatch jest użyteczny,
nie zwalnia nas jednak od konieczności ręcz-
nego usuwania niepotrzebnych plików. Dla-
tego lepszym rozwiązaniem jest Checkinstall
[2] – narzędzie oparte na Installwatch, ale
stanowiące istotny krok naprzód.
Największą różnicą jest to, że Checkinstall
./configure
make
A teraz, zamiast wpisać polecenie make in-
stall, uruchamiamy Checkinstall:
INFO
checkinstall --type=rpm
[1] Installwatch:
~izto/installwatch.html
[2] Checkinstall:
[3] DNRD:
Checkinstall najpierw zapytał mnie, czy chcę
umieścić dokumentację wkatalogu /usr/doc/
– dlaczego nie? Następnie zostało urucho-
mione polecenie make install. Program prze-
75
www.linux-magazine.pl
Październik 2004
[ Pobierz całość w formacie PDF ]