abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 15:33 | IT novinky

    Po 26 letech od protiprávního policejního zásahu, který byl spuštěn na základě podnětu společnosti Microsoft, Obvodní soud pro Prahu 2 rozsudkem potvrdil, že Mironet prokázal významnou část svého nároku na náhradu škody vůči Ministerstvu spravedlnosti ČR. Soudem nyní přiznaná část nároku znamená rekordní odškodné, jaké kdy české soudy přiznaly za nesprávný postup státu. Spor byl rozdělen na několik škod, u pravomocně uzavřených částí

    … více »
    Ladislav Hagara | Komentářů: 10
    dnes 15:22 | Nová verze

    Lehké desktopové prostředí LXQt bylo vydáno ve verzi 2.4.0. Jde o převážně opravné vydání s drobnými vylepšeními podpory Waylandu.

    |🇵🇸 | Komentářů: 0
    dnes 12:44 | IT novinky

    Počítačová hra Kingdom Come: Deliverance 2 českého studia Warhorse získala cenu BAFTA v kategorii nejlepší příběh. V konkurenci pěti dalších nominovaných děl porazila i úspěšnou francouzskou hru Clair Obscur: Expedition 33, která v letošním ročníku získala cenu za nejlepší hru roku.

    Ladislav Hagara | Komentářů: 1
    dnes 12:22 | Komunita

    Projekt KDE oslaví v říjnu 30 let. Matthias Ettrich poslal 14. října 1996 do diskusní skupiny comp.os.linux.misc zprávu, která započala historii projektu. Důležité milníky jsou zobrazeny na časové ose KDE.

    Ladislav Hagara | Komentářů: 1
    dnes 02:55 | Komunita

    Byly vyhlášeny výsledky letošní volby vedoucí/ho projektu Debian (DPL, Wikipedie). Poprvé povede Debian žena. Novou vedoucí je Sruthi Chandran. Letos byla jedinou kandidátkou. Kandidovala již v letech 2020, 2021, 2024 a 2025. Na konferenci DebConf19 měla přednášku Is Debian (and Free Software) gender diverse enough?

    Ladislav Hagara | Komentářů: 15
    dnes 00:55 | Nová verze

    Byla vydána nová verze 10.3 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání. Přidána byla podpora Orange Pi 4 LTS. Přibyl balíček Prometheus.

    Ladislav Hagara | Komentářů: 0
    včera 18:55 | Nová verze

    Implementace VPN softwaru WireGuard (Wikipedie) pro Windows, tj. WireGuard pro Windows a WireGuardNT, dospěly do verze 1.0.

    Ladislav Hagara | Komentářů: 2
    včera 16:11 | IT novinky

    V Pekingu dnes proběhl 2. ročník půlmaratonu humanoidních robotů. První 3 místa obsadili roboti Honor Lightning v různých týmech. Nový rekord autonomního robota je 50 minut a 26 sekund. Operátorem řízený robot to zvládl i s pádem za 48 minut a 19 sekund. Řízení roboti měli časovou penalizaci 20 %. Před rokem nejrychlejší robot zvládl půlmaraton za 2 hodiny 40 minut a 42 sekund. Aktuální lidský rekord drží Jacob Kiplimo z Ugandy s časem 57 minut a 20 sekund [𝕏].

    Ladislav Hagara | Komentářů: 5
    17.4. 17:11 | Zajímavý článek

    Stanislav Fort, vedoucí vědecký pracovník z Vlčkovy 'kyberbezpečnostní' firmy AISLE, zkoumal dopady Anthropic Mythos (nový AI model od Anthropicu zaměřený na hledání chyb, který před nedávnem vyplašil celý svět) a předvedl, že schopnosti umělé inteligence nejsou lineárně závislé na velikosti nebo ceně modelu a dokázal, že i některé otevřené modely zvládly v řadě testů odhalit ve zdrojových kódech stejné chyby jako Mythos (například FreeBSD CVE-2026-4747) a to s výrazně nižšími provozními náklady.

    MakeIranBombedAgain❗ | Komentářů: 8
    17.4. 12:44 | IT novinky

    Federální návrh zákona H.R.8250 'Parents Decide Act', 13. dubna předložený demokratem Joshem Gottheimerem a podpořený republikánkou Elise Stefanik coby spolupředkladatelkou (cosponsor), by v případě svého schválení nařizoval všem výrobcům operačních systémů při nastavování zařízení ověřovat věk uživatelů a při používání poskytovat tento věkový údaj aplikacím třetích stran. Hlavní rozdíl oproti kalifornskému zákonu AB 1043 a kolorádskému SB26-051 je ten, že federální návrh by platil rovnou pro celé USA.

    MakeIranBombedAgain❗ | Komentářů: 13
    Které desktopové prostředí na Linuxu používáte?
     (14%)
     (8%)
     (1%)
     (12%)
     (30%)
     (3%)
     (6%)
     (2%)
     (15%)
     (25%)
    Celkem 1365 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    Balíčky pro Debian - 7 (skriptíky a debconf)

    31. 7. 2008 | Michal Čihař | Návody | 4250×

    Balíček občas potřebuje během instalace něco provést. Podobně jako RPM, umožňuje Debian začlenit do různých fází instalace všelijaké skriptíky.

    Obsah

    Debian nabízí čtyři skripty, kterými můžete ovlivnit průběh instalace - postinst, preinst, postrm, prerm a config. Skript config je trochu specifický a spouští se ještě před instalování všech balíčků. Používá se v podstatě jen ve spojení s Debconfem a umožní získat odpovědi uživatelů na různé dotazy. Jeho přesnější použití si probereme až společně se Debconfem.

    Spouštění skriptíků

    link

    Každý skript dostává v prvním parametru typ akce, která se právě provádí, a pokud se jedná o aktualizaci, tak verzi balíčku, ze kterého se aktualizuje. Celkové pořadí a možnosti spouštění skriptů jsou celkem komplikované, takže zájemce o podrobné studium stavových diagramů odkáži na wiki. Pro běžné použití nám však stačí zapamatovat si pořadí skriptů.

    Při instalaci se nejdříve pouští preinst, rozbalí se soubory a pustí se postinst. Při aktualizaci balíčku se nejdříve pouští prerm starého balíčku, pak preinst nového, rozbalí se soubory, postrm starého a postinst z nového balíčku. Poslední důležitá akce je odstranění balíčku: nejdříve se pustí skript prerm a po odstranění souborů skript postrm. Pokud znáte i RPM, je dobré si uvědomit, že při aktualizaci je pořadí trochu jiné.

    Co v nich potřebujeme?

    link

    Pro začátek jednoduchá odpověď: pro většinu standardních balíčků všechny potřebné akce (pokud vůbec nějaké jsou) do skriptíků vygeneruje automaticky Debhelper a nemusíme se o nic starat. Mezi takové akce patří například spouštění programu ldconfig při instalaci knihovny, instalace init skriptů, kompilování byte kódu pro Python a podobně.

    Nicméně pokud náš balíček potřebuje například vytvoření nového systémového uživatele, už se bez psaní skriptů neobejdeme. Skriptíky pro každý balíček patří do adresáře debian a budou se jmenovat debian/binární-balíček.jméno-skriptu, například tedy debian/hello.postinst. Při psaní vlastních skriptů nesmíme zapomenout na Debhelper, který pořád může chtít vložit nějakou část do těchto skriptíků. Proto by každý námi vytvořený skript měl obsahovat speciální komentář, který značí, kam Debhelper může vkládat svůj kód:

    #DEBHELPER#

    Debconf

    link

    Pokud od skriptů požadujeme nějakou interaktivitu s uživatelem, měl by se pro tyto účely používat Debconf. Jakákoliv interaktivita by měla být omezena na nejnutnější možnou míru, takže pokud je možné použít vhodné výchozí hodnoty, je to vždy lepší, než se ptát uživatele na každou konfigurační možnost ve vašem balíčku. Odpovědi uživatelů se ukládají do databáze a uživatel není vícekrát dotazován na věci, na které již jednou odpovídal. Jediná možnost, jak zobrazit již odpovězené otázky, je použití dpkg-reconfigure.

    Debconf umožňuje získat informace od uživatele ve standardní formě a využívat právě používané grafické rozhraní. Zobrazování dialogů uživateli má na starosti část zvaná frontend, kterých existuje celá řada (GNOME, KDE, příkazová řádka, dialog, atd.). Otázky pro Debconf je také možné překládat, takže budou uživateli zobrazeny podle jeho locales. Pro správné používání Debconfu potřebujeme upravit minimálně tyto soubory:

    • debian/templates - Tento soubor obsahuje šablony otázek, tedy jejich typ a anglické texty, které se zobrazí uživateli.
    • debian/binární-balíček.config - Skript, který se pouští před instalací balíčku a měl by se uživatele zeptat na všechny dotazy.
    • debian/binární-balíček.postinst - Ve skriptu po instalaci balíčku budeme chtít získaná data nějak využít.
    • debian/po - Tento adresář může obsahovat překlady šablon.
    • debian/rules - Zde musíme přidat volání dalšího skriptu Debhelperu - dh_installdebconf, ten nainstaluje šablony na správné místo do balíčku a automaticky přidá do skriptu postrm kód na vymazání hodnot z databáze.

    Šablony

    link

    Šablony používají podobný formát jako debian/control, takže napsat ji nebude nic těžkého:

    Template: jméno-balíčku/jméno-otázky
    Type: typ-otázky
    Default: výchozí-hodnota
    Choices: volby, pro, výběrové, typy
    _Description: Název položky:
     Podrobný popis položky.

    Povinná pole jsou jen Template, Type a Description. To, že jméno pole začíná na podtržítko, znamená, že je možné toto pole přeložit. Obvykle se používá u Description, ale občas i u Choices. O překladu šablon se dozvíte více na konci dnešního článku. Jako jméno otázky použijte co nejjednodušší identifikátor, typ otázky je jeden z následujících:

    • string - Textové pole pro zadání libovolného textu.
    • password - Zadávání hesla.
    • boolean - Možnost odpovědět ano, nebo ne.
    • select - Volba jedné z mnoha možností, možnosti se vypisují v poli Choices.
    • multiselect - Volba libovolného počtu z mnoha možností, možnosti se vypisují v poli Choices.
    • note - Zobrazení informační zprávy, v podstatě by se nemělo používat, protože jediná důležitá informace, která by měla být uživateli zobrazena, je chyba a pro tu je speciální typ.
    • error - Zobrazení chybové zprávy.
    • title - Nastavení titulku.
    • text - Zobrazení textu v rozhraní, zatím ho žádný frontend nepodporuje.

    Konfigurační a poinstalační skript

    link

    Do konfiguračního skriptu musíme zapsat ptaní se na všechny otázky. Všechny potřebné funkce pro tuto činnost získáme ze skriptu /usr/share/debconf/confmodule. Příkazy začínají na db_ a význam těch nejdůležitějších asi uhodnete z jejich názvů:

    • db_input - Připraví otázku k zobrazení. První parametr je důležitost otázky, druhý její identifikátor (hodnota Template z šablony).
    • db_go - Zobrazí otázku uživateli. Je možné připravit najednou více otázek a uživatel pak mezi nimi může přecházet. Při provedení se odpovědi ukládají do databáze.
    • db_get - Načte odpověď na otázku z databáze. Jediný identifikátor otázky.
    • db_set - Nastaví odpověď na otázku do databáze. První parametr je identifikátor otázky, druhý hodnota, kterou chceme nastavit.

    Jednoduchý konfigurační soubor (debian/binární-balíček.config) by mohl vypadat nějak takto:

    #!/bin/sh
    CONFIGFILE=/etc/foo.conf
    set -e
    . /usr/share/debconf/confmodule
    
    # Load config file, if it exists.
    if [ -e $CONFIGFILE ]; then
        . $CONFIGFILE || true
    
        # Store values from config file into
        # debconf db.
        db_set mypackage/foo "$FOO"
        db_set mypackage/bar "$BAR"
    fi
    
    # Ask questions.
    db_input medium mypackage/foo || true
    db_input medium mypackage/bar || true
    db_go || true

    Důležité je nepřepisovat uživatelovy změny v konfiguraci. Proto, pokud již konfigurační soubor existuje, načteme hodnoty z něj. Pak se zobrazí otázky.

    V poinstalačním skriptu (debian/binární-balíček.postinst) pak musíme tyto hodnoty načíst a zpracovat. Jako pokračování výše zmíněného příkladu je uložíme do konfiguračního souboru:

    #!/bin/sh
    CONFIGFILE=/etc/foo.conf
    set -e
    . /usr/share/debconf/confmodule
    
    # Generate config file, if it doesn’t exist.
    # An alternative is to copy in a template
    # file from elsewhere.
    if [ ! -e $CONFIGFILE ]; then
        echo "# Config file for my package" > $CONFIGFILE
        echo "FOO=" >> $CONFIGFILE
        echo "BAR=" >> $CONFIGFILE
    fi
    
    # Substitute in the values from the debconf db.
    # There are obvious optimizations possible here.
    # The cp before the sed ensures we do not mess up
    # the config file’s ownership and permissions.
    db_get mypackage/foo
    FOO="$RET"
    db_get mypackage/bar
    BAR="$RET"
    cp -a -f $CONFIGFILE $CONFIGFILE.tmp
    
    # If the admin deleted or commented some variables but then set
    # them via debconf, (re-)add them to the conffile.
    test -z "$FOO" || grep -Eq ’^ *FOO=’ $CONFIGFILE || \
        echo "FOO=" >> $CONFIGFILE
    test -z "$BAR" || grep -Eq ’^ *BAR=’ $CONFIGFILE || \
        echo "BAR=" >> $CONFIGFILE
    
    sed -e "s/^ *FOO=.*/FOO=\"$FOO\"/" \
        -e "s/^ *BAR=.*/BAR=\"$BAR\"/" \
        < $CONFIGFILE > $CONFIGFILE.tmp
    mv -f $CONFIGFILE.tmp $CONFIGFILE
    
    #DEBHELPER#

    Jak vidíme, tak kromě dvojího zavolání db_get se skript jen snaží bezpečně upravit konfigurační soubor.

    Překládání šablon

    link

    Na závěr jsem si nechal překládání šablon. Pro používání překladů potřebujeme nejprve náš balíček trochu upravit. O podtržítku před překladatelnými texty jsem již mluvil v části o šablonách. Dále je potřeba přidat kompilační závislost na po-debconf do debian/control a vytvořit soubor debian/po/POTFILES.in se seznamem souborů pro překlad - obvykle v něm bude jediná řádka:

    [type: gettext/rfc822deb] templates

    Nyní již můžeme pustit program debconf-updatepo (z balíčku po-debconf), který vygeneruje šablonu pro překlad debian/po/templates.pot. Tento soubor již můžeme předhodit překladatelům a začlenit zpět překlady do adresáře debian/po (například český překlad bude patřit do souboru debian/po/cs.po). Instalaci překladů na správné místo zařídí výše zmiňovaný dh_installdebconf.

           

    Hodnocení: 100 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Diskuse byla administrátory uzamčena

    31.7.2008 00:09 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Balíčky pro Debian - 7 (skriptíky a debconf)
    Podobně jako RPM, umožňuje Debian začlenit do různých fází instalace všelijaké skritíky.
    Quando omni flunkus moritati
    31.7.2008 02:57 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: Balíčky pro Debian - 7 (skriptíky a debconf)
    Opraveno, díky.
    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.