abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    17.5. 13:44 | Nová verze

    Byla vydána (𝕏) nová major verze 17 softwarového nástroje s webovým rozhraním umožňujícího spolupráci na zdrojových kódech GitLab (Wikipedie). Představení nových vlastností i s náhledy a videi v oficiálním oznámení.

    Ladislav Hagara | Komentářů: 0
    17.5. 12:22 | Komunita

    Sovereign Tech Fund, tj. program financování otevřeného softwaru německým ministerstvem hospodářství a ochrany klimatu, podpoří vývoj FFmpeg částkou 157 580 eur. V listopadu loňského roku podpořil GNOME částkou 1 milion eur.

    Ladislav Hagara | Komentářů: 0
    17.5. 01:55 | Komunita

    24. září 2024 budou zveřejněny zdrojové kódy přehrávače Winamp.

    Ladislav Hagara | Komentářů: 12
    16.5. 23:33 | Nová verze

    Google Chrome 125 byl prohlášen za stabilní. Nejnovější stabilní verze 125.0.6422.60 přináší řadu oprav a vylepšení (YouTube). Podrobný přehled v poznámkách k vydání. Opraveno bylo 9 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.

    Ladislav Hagara | Komentářů: 1
    16.5. 21:11 | Nová verze

    Textový editor Neovim byl vydán ve verzi 0.10 (𝕏). Přehled novinek v příspěvku na blogu a v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    16.5. 20:55 | Nová verze

    Byla vydána nová verze 6.3 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Přehled změn v příslušném seznamu. Tor Browser byl povýšen na verzi 13.0.15.

    Ladislav Hagara | Komentářů: 0
    16.5. 13:33 | IT novinky

    Dnes ve 12:00 byla spuštěna první aukce domén .CZ. Zatím největší zájem je o dro.cz, kachnicka.cz, octavie.cz, uvycepu.cz a vnady.cz [𝕏].

    Ladislav Hagara | Komentářů: 10
    16.5. 13:22 | Nová verze

    JackTrip byl vydán ve verzi 2.3.0. Jedná se o multiplatformní open source software umožňující hudebníkům z různých částí světa společné hraní. JackTrip lze instalovat také z Flathubu.

    Ladislav Hagara | Komentářů: 0
    16.5. 12:22 | Pozvánky

    Patnáctý ročník ne-konference jOpenSpace se koná 4. – 6. října 2024 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytváří všichni účastníci, se skládá z desetiminutových

    … více »
    Zdenek H. | Komentářů: 0
    16.5. 03:11 | Nová verze

    Program pro generování 3D lidských postav MakeHuman (Wikipedie, GitHub) byl vydán ve verzi 1.3.0. Hlavní novinkou je výběr tvaru těla (body shapes).

    Ladislav Hagara | Komentářů: 9
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (77%)
     (5%)
     (10%)
     (8%)
    Celkem 355 hlasů
     Komentářů: 16, poslední 14.5. 11:05
    Rozcestník

    Balíčky pro Debian - 9 (užitečné nástroje)

    3. 10. 2008 | Michal Čihař | Návody | 5423×

    Jaké nástroje nám mohou usnadnit práci s údržbou balíčků? Za léta existence Debianu jich vzniklo mnoho, dnes se podíváme na ty nejdůležitější.

    Obsah

    Kontrola balíčku - lintian

    link

    Bez tohoto nástroje se určitě neobejdete, pokud budete chtít svůj balíček dostat do distribuce, protože to je první věc, kterou budou ostatní kontrolovat. Jedná se o nástroj pro automatické zjišťování chyb, které tvůrce balíčku spáchal. V poslední době prožívá poměrně bouřlivý vývoj, takže je vhodné používat vždy poslední verzi z unstable, protože jen tak získáte nejaktuálnější sadu kontrol.

    Jak jeho výstup může vypadat, se podívejte na následujícím výpisu (jako příklad zde posloužil balíček, který jsem právě kontroloval):

    $ lintian deejayd_0.6.3-1_i386.changes
    W: deejayd: spelling-error-in-description gstreamer GStreamer

    První písmeno určuje závažnost problému (E - chyba, W - varování, I - informace, N - poznámka), následuje jméno balíčku (ať už binárního nebo zdrojového), tag chyby a případné podrobnější informace. Ve výchozím nastavení se informační hlášky nezobrazují, nicméně je dobré si je zapnout pomocí přepínače -I, protože většinou se stejně jedná o naší chybu. Dalším důležitým přepínačem je -i, kterým se zobrazí podrobnější popis nalezeného problému (pokud nám z tagu není jasné, v čem je vlastně problém). Kompletní výpis pak může vypadat takto:

    $ lintian -Ii deejayd_0.6.3-1_i386.changes
    I: deejayd source: build-depends-without-arch-dep docbook-xsl
    N:
    N:   The control file lists the given package in Build-Depends, but no
    N:   architecture-dependent packages are built. If all the packages built
    N:   are architecture-independent, the only packages that should be listed
    N:   in Build-Depends are those required to run the clean target (such as
    N:   debhelper if you use dh_clean). Other build dependencies should be
    N:   listed in Build-Depends-Indep instead.
    N:   
    N:   Refer to Policy Manual, section 7.6 for details.
    N:
    I: deejayd source: build-depends-without-arch-dep python-central
    I: deejayd source: build-depends-without-arch-dep xsltproc
    W: deejayd: spelling-error-in-description gstreamer GStreamer
    N:
    N:   Lintian found a spelling or capitalization error in the package
    N:   description. Lintian has a list of common misspellings that it looks
    N:   for. It does not have a dictionary like a spelling checker does. It is
    N:   particularly picky about spelling and capitalization in package
    N:   descriptions since they're very visible to end users.
    N:
    

    Nyní již našel lintian více problémů a také nám napsal více informací, jak je opravit. Pokud jste vzorně vypracovávali domácí úkoly, zkuste si nyní váš balíček zkontrolovat a opravte nalezené chyby.

    Dalším nástrojem pro kontrolu balíčků je linda, která kdysi vznikla z důvodu nespokojenosti s lintianem, ale v dnešní době již nic zásadního navíc nenabízí a klidně ji můžeme ignorovat, protože testy, které přinášela navíc jsou již v současné době začleněny do lintianu.

    Kontrola aktuálnosti balíčku - uscan a uupdate

    link

    V prvním díle jsme zmínili soubor debian/watch a tentokrát se na něj podíváme podrobněji. Program uscan načte tento soubor a pokusí se na webových stránkách v něm definovaných najít nejnovější dostupnou verzi programu. Jak vypadá soubor debian/watch pro dříve rozebíraný balíček photo-uploader vidíte na následujícím výpisu:

    version=3
    http://dl.cihar.com/photo-uploader/latest/photo-uploader-(.*)\.tar.gz

    Na prvním řádku určíme verzi, kterou používáme, a na dalším je definováno, kde má uscan hledat aktuální verze programu. Vyhledávání se provádí pomocí regulárního výrazu a část v závorkách určuje verzi programu (pokud je závorek víc, jsou tyto části pospojovány tečkami a dohromady určují verzi). Můžeme zadat jediné URL (jako je na našem příkladu) nebo URL, které má program stáhnout a regulární výraz, který má být ve stránce vyhledáván, například:

    version=3
    http://news.tiker.net/dl/software/tagpy /news.tiker.net/download/software/tagpy/tagpy-(.*)\.tar\.gz

    Jestli je balíček aktuální, zjistíme programem uscan:

    $ uscan  --report-status
    Processing watchfile line for package photo-uploader...
    Newest version on remote site is 0.5, local version is 0.5
     => Package is up to date

    Program umí i přímo stáhnout nový tarball a přebalit ho do .tar.gz. Pokud má zabalený program z nějakého důvodu jinou verzi než náš balíček (například jsme museli zdrojové kódy přebalit z licenčních důvodů), je možné pomocí dalších parametrů v souboru debian/watch zadat téměř libovolné přejmenovávání verzí.

    Ve spojení s aktualizací balíčku na novou verzi se ještě může hodit uupdate, který aktualizuje balíček na novější verzi pomocí nového tarballu (který jsme stáhli uscanem). Bohužel pro většinu situací, kdy je balíček spravován ve VCS, se tento nástroj moc nehodí, takže od jeho používání se ustupuje.

    Stahování a nahrávání balíčků - dget a dput

    link

    Poslední nástroje, na které se dnes podíváme, jsou dget a dput. Ty slouží pro stahování a nahrávání balíčků. Protože zdrojový balíček se obvykle skládá z více souborů, tak nám ušetří několik kroků, které by bylo nutné provést.

    Použití dget je jednoduché - stačí mu předhodit URL s .dsc souborem a on se postará o ostatní. Případně nám i balíček rovnou rozbalí (pokud zadáme parametr -x):

    $ dget -x http://ftp.cz.debian.org/debian/pool/main/e/enca/enca_1.9-1.dsc
    dget: retrieving http://ftp.cz.debian.org/debian/pool/main/e/enca/enca_1.9-1.dsc
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100   582  100   582    0     0   3985      0 --:--:-- --:--:-- --:--:--     0
    dget: retrieving http://ftp.cz.debian.org/debian/pool/main/e/enca/enca_1.9.orig.tar.gz
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100  657k  100  657k    0     0   432k      0  0:00:01  0:00:01 --:--:--  480k
    dget: retrieving http://ftp.cz.debian.org/debian/pool/main/e/enca/enca_1.9-1.diff.gz
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100 17257  100 17257    0     0  60397      0 --:--:-- --:--:-- --:--:--  106k
    dpkg-source: extracting enca in enca-1.9
    dpkg-source: unpacking enca_1.9.orig.tar.gz
    dpkg-source: applying ./enca_1.9-1.diff.gz
    

    Pro nahrávání zase slouží dput. Tomu jako parametry dáváme kam nahrát a soubor .changes, který jsme získali kompilací balíčku. Umístění, kam nahráváme, musíme mít nadefinované v konfiguračním souboru ~/.dput.cf (tedy kromě nahrávání přímo do Debianu resp. Ubuntu, které je výchozí). Jak bude vypadat pro nahrávání přes scp vidíte níže, pro případné podrobnější informace o formátu konfigurace se podívejte do dokumentace.

    [example]
    fqdn = ssh.example.com
    login = nijel
    method = scp
    incoming = /tmp
    

    Pro nahrávání můžete použít i další nástroj - dupload. Asi není důvod ho používat, ale pro úplnost ho zde zmiňuji. Samozřejmě používá jinou konfiguraci než dput a jako největší rozdíl vidím fakt, že v současné době není aktivně udržován.

    Kompilace balíčků - pbuilder, buildd

    link

    Pokud už máme nějaký zdrojový balíček a chceme z něj vytvořit binární, nemusí se nám vždy hodit dpkg-buildpackage a instalování všech závislostí pro kompilaci do systému, který používáme. Pro tyto účely vznikl pbuilder, který se chová podobně jako buildd, jenž se stará o kompilaci balíčků na build serverech.

    Protože pbuilder při běhu provádí chroot, musí být spouštěn pod uživatelem root. Před prvním použitím si musíme nejdříve připravit základní build systém, který se bude při kompilaci balíčků používat. O to se postará příkaz pbuilder create a tím vzniklý tarball můžeme kdykoliv aktualizovat (a měli bychom to dělat pravidelně) pomocí pbuilder update.

    Jakmile máme tento systém připravený, můžeme již začít kompilovat balíčky. pbuilder vždy nejdříve nainstaluje potřebné balíčky a pak spustí kompilaci našeho balíčku. Pro zjednodušení používání existuje ještě wrapper pdebuild, který můžeme použít stejně jako dpkg-buildpackage. Výsledné balíčky se standardně ukládají do /var/cache/pbuilder/result/, ale pomocí přepínače --buildresult je můžete uložit do libovolného adresáře.

    Pokud chcete balíček dostat do distribuce, je vhodné si jeho kompilaci vyzkoušet v pbuilderu. Získáte tím totiž stejné prostředí jako používá buildd, a tudíž máte možnost odhalit případné problémy, které při kompilaci na build serverech nastanou (například chybějící závislosti).

    Nejčtenější články posledního měsíce

    Událo se v týdnu 17/2024
    Týden na ITBiz: Fotonické čipy ze stolní tiskárny
    Distribuční novinky 10-15/2024

    Nejkomentovanější články posledního měsíce

    Týden na ScienceMag.cz: Kosmologové se opět zkouší vypořádat se s problémem Hubbleovy konstanty
    Týden na ITBiz: Platby výkupného za ransomware vzrostly za poslední rok na pětinásobek
    Týden na ScienceMag.cz: Upřesnili limity pro klidovou hmotnost neutrin
      všechny statistiky »

    Seriál Balíčky pro Debian (dílů: 12)

    Balíčky pro Debian - 1 (úvod) (první díl)
    <—« Balíčky pro Debian - 8 (záplaty a uchovávání zdrojového balíčku)
    »—> Balíčky pro Debian - 10 (speciální balíčky)
    Balíčky pro Debian - 12 (závěr aneb co se jinam nevešlo) (poslední díl)

    Související články

    Na co se často ptáme: Balíčkovací systémy
    Seriál: Instalace softwaru v Linuxu
    Seriál: Gentoo ebuild
    Seriál: Rukověť baliče RPM
    Seriál: Balíčkovací systém Arch Linuxu
    Smart Package Manager - instalujeme chytře
    Zdroje balíčkov pre Ubuntu
    Balíčkovací systém Mandrake Linuxu
    Balíčkovací systém Gentoo Linuxu

    Odkazy a zdroje

    Návod pro začínajícího balíčkáře
    Příručka vývojáře
    Zásady Debianu
    Dokumentace pro vývojáře

    Další články z této rubriky

    VDR a DVB-T2, část 2.
    VDR a DVB-T2, část 1.
    Šifrovaný Proxmox VE 6: ZFS, LUKS, systemd_boot a Dropbear
    MapTiler – proměňte obrázek v zoomovatelnou mapu
    Syncthing
           

    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

    Vložit další komentář

    hikikomori82 avatar 3.10.2008 00:26 hikikomori82 | skóre: 18 | blog: foobar | Košice
    Rozbalit Rozbalit vše Re: Balíčky pro Debian - 9 (užitečné nástroje)
    čéče, jak na zavolanou, opravil som vsetky chyby ktore hlasil lintian ale apt-extracttemplates stale hlasi chybu
    $ lintian pokus_0.1_all.deb | wc -l
    0
    $ apt-extracttemplates pokus_0.1_all.deb 
    E: pokus_0.1_all.deb nie je platný DEB balík.
    E: Prior errors apply to pokus_0.1_all.deb
    
    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.