..komu prijde LD_PRELOAD na open/mkdir v libc jako hnusny DIRTY HACK? Vzdyt je to zasadni pitomost, ma milion problemu, a zadelava na dalsi. Napada mne treba:
- 'make install' musim spoustet pod rootem, tj checkinstall nejde pouzit pro audit toho, co se skript pokousi delat- coz bych velice rad vedel predem, protoze tam muze byt trojan a Makefile vytvoreny pomoci toho dementniho automake je samozrejme prakticky necitelny.
- Instalacni skript muze byt staticky linkovana binarka, pak mi checkinstall vsechny zmeny ve FS neodchyti, a balicek bude nefunkcni.
- To same kdyz chovani instalacniho skriptu zavisi na predchozim stavu systemu. Vytvoreny balicek to samozrejme nemuze reflektovat.
Pripomina to muj stary DOSovy rezident "viktor cistic". Nacetl do pameti seznam souboru v . a podadresarich, a hooknul open/creat/exec. Pak stacilo parkat aplikaci spustit, a rezident nakonec vyblil .BAT na smazani vsech nepotrebnych souboru.
Spatne reseni, ale tehdy nebyla jina moznost. Dnes je spravne reseni trivialni: zachovat (v ramci moznosti) soucasny build proces, ale zahodit target install (resp by pouze vygeneroval/customizoval nejaky .spec file), ktery by ale v zadnem pripade neobsahoval zadne skripty. Skriptovani operaci jako instalace/deinstalace baliku je cesta do pekla, nechapu proc se tam vsichni zenou.
checkinstall je podle meho take jen dirty nastroj pro opravdu line kteri toho nebuilduji moc.
protoze pokud pouziju DESTDIR jak pisu vyse tak mam mnohem vetsi kontrolu. muzu vse provest jako user, a jen vysledny balik pak zabalit jako root a nainstalovat. dokonce cela tvorba baliku jde udelat bez pouziti prav roota a ten je pak treba jen pro instalaci. mnohem bezpecnejsi zpusob myslim a odpada ryziko ze mi make treba neco smaze nebo sahne nekam kam nechci.
Jsem zatim prilis zaneradem windows "myslenim", tak jsem predpokladal, ze se tam deje jeste neco dalsiho, krome kopceni... ale kdyz se nad tim tak zamyslim, tak me nenapada co :-).
Jinak jsem myslel (zas tak moc jsem to neresil), ze checkinstall jede na slepo (ze ve skutecnosti nic nikam neinstaluje). Diky za trknuti (na vytvareni baliku bez roota a pod.).
No mne se to taky nelibi...
Na tyhle veci mam nejradsi stow, ktery udrzuje system symlinku v /usr/local. Kazdy balicek ma svuj adresar, instaluje se pod uzivatelem do /usr/local/stow/jmeno_baliku a pod rootem se jenom udela chown -R a stow jmeno_baliku. Odstraneni je zalezitosti stow -D a rm -r.
mne se checkinstall docela libi, je to velka uspora casu, hlavne kdyz clovek narazi na nestandardni makefile (bez prefixu a destdir). Koneckoncu, instalace pomoci ./configure && make && make install taky predstavuje bezpecnostni riziko (uplne stejne jako pouziti checkinstallu)