Hlavní navigace

Source Mage GNU/Linux: spelly

17. 4. 2003
Doba čtení: 6 minut

Sdílet

Logo linuxové distribuce Source Mage GNU/Linux obsahuje velkého černého ptáka. Angličané jej nazývají raven. Jaké je jeho české jméno? Krkavec, nebo havran? Kromě ornitologického koutku dnes zmíníme i správu softwarových produktů v linuxových distribucích. Hlavní pozornost je věnována spellům - kouzlům. Chcete se naučit kouzlit?

logo: Source Mage GNU/Linux

Krkavec versus havran

V druhé části tohoto seriálu jsem uvedl, že anglický název ptáka z loga Source Mage GNU/Linux je raven, což je v českém překladu krkavec. V diskusi se ale objevilo upozornění, že Edgar Allan Poe napsal báseň The Raven, jejíž český překlad nese název Havran. Nepovedlo se mi zjistit, proč je tomu tak. Důvodů může být několik. Možná chtěl překladatel použitím slova havran něco závažného sdělit nebo se chtěl více přiblížit svým čtenářům. Přece jenom se kolem nás objevuje více havranů než krkavců. Možná překladatel pouze použil nekvalitní anglicko-český slovník, nebo se mu do překladu básně slovo havran více hodilo. Možná Edgar Allan Poe psal o havranovi a ve své slavné básni jej pojmenoval slovem raven. A možná se ve skutečnosti jednalo o vránu obecnou černou. :-))

Nejenom ve speciálním ptačím slovníku je uvedeno, že překladem slova raven by mělo být v českém i slovenském jazyce slovo krkavec.

Tabulka č. 407
anglický název latinský název český název slovenský název
raven Corvus corax krkavec velký krkavec čierny
rook Corvus frugilegus havran polní havran čierny
carrion crow Corvus corone corone vrána obecná černá vrana obyčajná západoevropská

Správa softwarových produktů

V binárních linuxových distribucích je správa softwarových produktů založena na binárních balíčcích. Vývojáři těchto distribucí vytvářejí ze zdrojových kódů softwarových produktů (například xxx.tar.gz) zdrojové balíčky (xxx.src.rpm) a z nich balíčky binární (xxx.i386.rpm). V binárních distribucích se doporučuje pouze instalace oficiálních binárních balíčků, případně binárních balíčků vytvořených z oficiálních zdrojových balíčků. Instalace softwarových produktů přímo ze zdrojových kódů je zavrhována, protože správa softwarových produktů nemá informace o takto instalovaných produktech. Produkty instalované ze zdrojových kódů nelze jednoduchým způsobem aktualizovat ani odinstalovat. Doporučeným způsobem nelze zjistit ani seznam souborů patřících produktu, ani verzi nainstalovaného produktu.

V Source Mage GNU/Linux se softwarové produkty instalují především ze zdrojových kódů. Nevýhody instalace ze zdrojových kódů zmíněné v předešlém odstavci ale v této distribuci neplatí. Správa softwarových produktů zde plní stejné funkce jako správa softwarových produktů v binárních linuxových distribucích. Samozřejmě je nutné instalaci produktů přenechat správě softwarových produktů, tj. musí existovat spell popisující daný softwarový produkt a jeho instalace musí být provedena příkazem „cast“. Ani v této distribuci nelze cokoli kamkoli ručně nainstalovat a očekávat, že správa softwarových produktů to dokáže spravovat.

Podrobnější pohled na spell (kouzlo)

Spell (kouzlo) je popis softwarového produktu. Abecedně setříděný seznam spellů, tj. seznam softwarových produktů, které lze jednoduše nainstalovat, lze získat na oficiálních stránkách distribuce. Seznam spellů rozdělený podle zaměření (http, crypto, video, �) lze získat na stránkách projektu grimoire-gurus. Aktuální počet spellů v devel grimoire je 2027.

Spell je složen z několika textových souborů. Nejjednodušší spelly jsou složeny pouze ze dvou souborů: DETAILS a HISTORY.

DETAILS

Tabulka č. 408
           SPELL=lcrack
         VERSION=20030404
          SOURCE=$SPELL-$VERSION.tar.gz
SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
   SOURCE_URL[0]=http://usuarios.lycos.es/reinob/lcrack/$SOURCE
          MD5[0]=94cd232e1d5cc794e4a184c75b9c5675
        WEB_SITE=http://usuarios.lycos.es/reinob/
         ENTERED=20030410
         UPDATED=20030410
      LICENSE[0]=GPL
      MAINTAINER=hgr@vabo.cz
           SHORT="lcrack - Lepton's Crack is a generic
        password cracker"
cat << EOF
Lepton's Crack is a generic password cracker, easily
customizable with a simple plug-in system.

It can perform a dictionary-based (wordlist) attack, as well
as a brute-force (incremental) password scan.

Currently the formats supported are: standard MD4 hash,
standard MD5 hash, NT MD4/Unicode, Lotus Domino HTTP
password (R4) and SHA-1.
EOF

Soubor DETAILS je nejdůležitějším souborem spellu. Obsahuje následující položky:

Tabulka č. 409
SPELL Jméno spellu, obvykle stejné jako jméno softwarového produktu.
VERSION Verze spellu, obvykle stejná jako verze softwarového produktu.
SOURCE Jméno souboru obsahujícího zdrojové kódy softwarového produktu.
SOURCE_DIRECTORY Adresář, do kterého se při instalaci produktu rozbalují zdrojové kódy.
SOURCE_URL URL na soubor obsahující zdrojové kódy softwarového produktu.
MD5 MD5 otisk dekoprimovaného souboru $SOURCE, tj. bez gz nebo bz2.
WEB_SITE Domovská stránka softwarového produktu.
ENTERED Datum vytvoření spellu, obvykle datum jeho přidání do devel grimoire.
UPDATED Datum posledního nutného přeinstalování. Při změně verze je spell automaticky přeinstalován. Tato položka je měněna pouze v případech, kdy je nutné spell přeinstalovat, i když má stejnou verzi. Využívá se toho například v případě bezpečnostních záplat. Verze spellu se nezmění, změní se pouze obsah souboru BUILD.
LICENSE Licence softwarového produktu.
MAINTAINER E-mail adresa „údržbáře“ spellu.
SHORT Krátký, jednořádkový popis spellu – produktu.
cat << EOF
EOF
Dlouhý popis spellu.

HISTORY

Tabulka č. 410
2003-04-10  Ladislav Hagara < hgr@vabo.cz >

                created and added to grimoire

Soubor HISTORY popisuje historii spellu: kdy, kým, co, případně proč bylo změněno. Nejčastěji se jedná o aktualizaci verze produktu.

PRE_BUILD

Tabulka č. 411
mk_source_dir  $SOURCE_DIRECTORY   &&
cd             $SOURCE_DIRECTORY   &&
unpack         $SOURCE ${MD5[0]}

Rozbalením běžného souboru obsahujícího zdrojové kódy vznikne adresář s danými kódy, tj. rozbalením souboru xxx-y.z.tar.bz2 vznikne adresář xxx-y.z. Někdy jsou ale zdrojové kódy rozbalovány přímo do aktuálního adresáře. Tomu je nutné předejít například pomocí souboru PRE_BUILD. V něm může být definováno vytvoření požadovaného adresáře a rozbalení zdrojových kódů.

BUILD

Tabulka č. 412
(

  create_account sshd

  sedit  "s/CFLAGS = -O2 -Wall/CFLAGS = $CFLAGS/"   Makefile.in
  sedit  "s/\/local//"   Makefile.in

  patch  -p1  <  $SOURCE_CACHE/$SOURCE2

  ./configure $ARCHITECTURE   &&
  make                        &&

  prepare_install             &&

  cp lcrack /usr/bin/lcrack

) > $C_FIFO 2>&1

Pokud produkt nelze nainstalovat standardním způsobem (./configure, make, make install), je nutné do spellu přidat soubor BUILD. Ten zabezpečí případnou úpravu zdrojových kódů (pomocí sedit nebo pomocí patch), překlad i instalaci produktu. V souboru BUILD lze využít i funkcí poskytovaných sorcery, například vytvoření účtu.

DEPENDS

Tabulka č. 413
depends  gtk+        &&
depends  glib        &&

optional_depends  "libvorbis"        \
                  ""                 \
                  ""                 \
                  "to play Ogg Vorbis files"      &&

optional_depends  "gnome-core"       \
                  "--with-gnome"     \
                  "--without-gnome"  \
                  "for gnome support"

Soubor DEPENDS definuje závislosti mezi spelly. Jedná se o seznam spellů, jejichž instalace je pro daný spell bezpodmínečně nutná (depends), nebo ovlivňuje jeho vlastnosti (optional_depends).

CONFIGURE

Tabulka č. 414
if  !  grep  -q  "KMail="  $SPELL_CONFIG;  then

  if    query  "Do you want pinentry due to KMail?" n
  then  echo   "KMail=y"  >>  $SPELL_CONFIG
  else  echo   "KMail=n"  >>  $SPELL_CONFIG
  fi

fi

Soubor CONFIGURE slouží ke konfiguraci spellu. Odpovědi na otázky se ukládají do souboru $SPELL_CONFIG. Dle odpovědí je ovlivňován například průběh překladu:

BUILD

Tabulka č. 415
(

  case $KMail in

    y|Y) OPTS="$OPTS --disable-pinentry-gtk      \
                     --disable-pinentry-curses   \
                     --disable-fallback-curses"
         ;;
  esac

  default_build

) > $C_FIFO 2>&1

 

CONFLICTS

Tabulka č. 416
conflicts  ssh

Spelly, které nelze mít nainstalované současně, obsahují soubor CONFLICTS. V případě instalace takového spellu jsou spelly obsaženy v souboru CONFLICTS odinstalovány. Jedná se například o spelly obsahující soubory se stejnými jmény nebo využívající stejná čísla portů.

TRIGGERS

Tabulka č. 417
on_cast  zlib     cast_self
on_cast  openssl  cast_self

Po instalaci, před instalací, po odinstalování nebo před odinstalováním spellu může být nutné provést některé akce, například opětovné přeložení vybraných již nainstalovaných spellů. Příkladem může být knihovna zlib. Pokud je k produktu staticky linkována, je nutné produkt po aktualizaci knihovny opětovně přeložit. K tomu je využíván soubor TRIGGERS. Ten může obsahovat čtyři spouště (on_cast, on_pre_cast, on_dispel, on_pre_dispel) a čtyři akce (cast_self, dispel_self, check_self, run_script).

PROVIDES

Tabulka č. 418
mozilla
email-client
web-browser
graphical-web-browser

Soubor PROVIDES lze využít například pro vyhledávání požadovaného spellu – softwarového produktu. Ve spolupráci s příkazem gaze lze vypsat například všechny spelly, které lze použít pro čtení pošty (gaze provides email-client).

ict ve školství 24

V spellu mohou být obsaženy i další soubory. Nebyly zde zmíněny například soubory PREPARE, POST_INSTALL, PRE_REMOVE, POST_REMOVE. Další informace lze získat na wiki serveru.

PS:

Jsem rád, že se mi povedlo několik jedinců „nakopnout správným směrem“ a přimět je k instalaci této kouzelné distribuce. Jedním z „nakopnutých“ je i largon, jehož „subjektivní názor na Source Mage v praxi“ prezentovaný na serveru penguin končí slovy „Kdo jednou zkusí, nechce nic jiného.“
Nechcete také vyzkoušet? :-))