Portál AbcLinuxu, 4. května 2025 17:40
Chceme se zbavit autoconfu? Filtrování spamu pomocí gzip. Instalace software a nedostatky současných balíčkovacích systémů.
Andrew McCall se v editoriálu na freshmeat.net pustil do autoconf utilit, které
jsou používány distributory naprosté většiny zdrojového kódu na *nixových
systémech.
V úvodu demonstruje nepraktičnost tohoto build systému úsměvným příběhem
o běžném, přiměřeně zdatném uživateli Linuxu, který se snaží prokousat
zdánlivě banální procedurou ./configure && make && make
install
. Naráží přitom na hromadu problémů, které je nutno řešit,
aby se člověk dopracoval kýženého výsledku - totiž zkompilovaného,
funkčního a nainstalovaného programu. Je sice pravda, že s některým z
popisovaných zádrhelů se pravděpodobně většina z nás také setkala, ale na
druhou stranu je také fakt, že Andrewův fiktivní uživatel působí malinko
natvrdlým dojmem. To však prvním několika odstavcům neubírá na
vtipnosti.
Pak se dozvíme, v čem podle autora tkví problém pro samotné vývojáře. Protože autoconf používá pro sestavování configure skriptů makro procesor m4, tak chcete-li opravdu porozumět tomu, co se pod kapotou děje, je třeba se v m4 orientovat. A to prý není žádná sranda. Říkám "prý", protože já sám takové ambice vůbec nemám, takže nemohu soudit.
Nakonec Andrew načrtne, proč si myslí, že v celém systému vládne takový zmatek (alespoň on to tak vidí...). Jádrem pudla jsou Makefiles. Abychom se předlouhých a komplikovaných Makefilů zbavili, je nutno nalézt efektivnější způsob řízení celého build procesu. Několik "řešení" také nabízí (SCons, CONS, A-A-P). Je si sice vědom jejich nedostatků (např. mizivé portability), ale soudí, že za pokus by jejich masovější rozšíření stálo.
Neméně zajímavé čtení nabízí kopec odpovědí na hlavní článek. Mohli bychom je rozdělit do dvou hlavních skupin. Převládají ti, kteří s Andrewem více méně souhlasí a také si stěžují na všelijaké zákeřnosti, které jim autoconf/automake, apod. provedly. Druhou partu tvoří názory těch, kdo sice netvrdí, že autoconf je dokonalost sama, ale že:
a) Nemáme nic, co by tomuto řešení sahalo alespoň po kotníky.
b) Kdyby se autor a ostatní trochu snažili se něco přiučit, poznali
by, jak silný nástroj to mají v rukou.
Článek najdete zde.
Již v lednu tohoto roku vyšel na
serveru kuro5hin.org krátký článek o
využití komprimačního algoritmu gzip pro
identifikaci spamu. Nenajdete v něm žádná převratná zjištění, přesto je
však myšlenka zajímavá.
LZ (Zip) a příbuzné kompresní algoritmy (gzip) v textu hledají opakované výskyty částí slov, celých slov nebo i frází. Každý takový opakovaný výskyt je nahrazen odkazem na první. Čím více se v textu nalézá totožných prvků, tím lepší poměr komprese získáme.
Této techniky lze využít ke zjištění podobnosti dvou různých textů. Tyto dva texty spojíme, zkomprimujeme a podle dosaženého kompresního poměru můžeme posoudit jejich podobnost. Je samozřejmé, že chceme-li mít možnost získanou informaci vyhodnotit, potřebujeme pro srovnání provést stejný pokus, při kterém jeden z textů nahradíme za jiný.
V případě identifikace spamu tedy postupujeme následovně: připravíme si blok textu, který lze považovat za jasný spam. Stejně tak vytvoříme "šablonu" pro ne-spam. Autor postupoval tak, že si opatřil příklady spamu a ne-spamu z archívu SpamAssassinu. Z takto získaných emailových zpráv odstranil hlavičky a sloučil je do souborů o velikosti mezi 1 a 2 megabajty. Posledním krokem je samotné porovnání. V článku je vyřešeno jednoduchými příkazy:
cat spam.txt text-nove-zpravy.txt |gzip - |wc -c
cat ne-spam.txt text-nove-zpravy.txt |gzip - |wc -c
Ačkoliv výsledky potvrdily hypotézu, že kombinace spamu a ne-spamu bude mít horší kompresní poměr (a naopak), nelze takový postup určitě považovat za odpověď na problém spamu. Nicméně v kombinaci s dosud používanými metodami (které využívají počítání slov a přidělují jim různou statistickou významnost) by tento nápad mohl zlepšit účinnost dostupných filtrů. Přečtěte si původní článek.
Na serveru LinuxWorld.com vyšel rozsáhlý čtyřdílný seriál zabývající se instalací software na Linuxu. Z nadpisu je patrné, že autor, Nicholas Petreley, se stávající situací není moc spokojený. Postupně proto vymezuje výhody a nevýhody balíčkového přístupu a nakonec se i snaží o navrhnutí změn, které by dané problémy mohly řešit.
Přestože spousta uživatelů by jistě pohotově vyzdvihla a na příkladech doložila, kterak jsou balíčky právě té jejich distribuce odpovědí na nářky ostatních (musím se přemáhat, abych sem sám nenapsal, jak je ta "moje" distribuce nejlepší...), Nicholas tvrdí, že žádný z již existujících systémů prosazovat nechce. Žádný není tak jednoduchý a bezchybný, jak by si představoval.
Jednotlivé díly se zabývají následujícími věcmi:
Přečtěte si celý seriál zde.
Opravdu se nenajde nikdo, kdo by se chtěl spolupodílet na vzniku těchto článků?
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.