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í
×
    dnes 13:33 | IT novinky

    Před 25 lety, ve čtvrtek 29. dubna 1999, byla spuštěna služba "Úschovna".

    Ladislav Hagara | Komentářů: 0
    dnes 01:00 | Nová verze

    Byla vydána nová verze 24.04.28 s kódovým názvem Time After Time svobodného multiplatformního video editoru Shotcut (Wikipedie) a nová verze 7.24.0 souvisejícího frameworku MLT Multimedia Framework. Nejnovější Shotcut je vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.

    Ladislav Hagara | Komentářů: 0
    včera 16:33 | Nová verze Ladislav Hagara | Komentářů: 0
    včera 03:22 | Zajímavý článek

    V aktuálním příspěvku na blogu počítačové hry Factorio (Wikipedie) se vývojář s přezývkou raiguard rozepsal o podpoře Linuxu. Rozebírá problémy a výzvy jako přechod linuxových distribucí z X11 na Wayland, dekorace oken na straně klienta a GNOME, změna velikosti okna ve správci oken Sway, …

    Ladislav Hagara | Komentářů: 0
    včera 00:11 | Nová verze

    Rakudo (Wikipedie), tj. překladač programovacího jazyka Raku (Wikipedie), byl vydán ve verzi #171 (2024.04). Programovací jazyk Raku byl dříve znám pod názvem Perl 6.

    Ladislav Hagara | Komentářů: 6
    27.4. 17:44 | Nová verze

    Společnost Epic Games vydala verzi 5.4 svého proprietárního multiplatformního herního enginu Unreal Engine (Wikipedie). Podrobný přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    26.4. 17:11 | Nová verze

    Byl vydán Nextcloud Hub 8. Představení novinek tohoto open source cloudového řešení také na YouTube. Vypíchnout lze Nextcloud AI Assistant 2.0.

    Ladislav Hagara | Komentářů: 12
    26.4. 13:33 | Nová verze

    Vyšlo Pharo 12.0, programovací jazyk a vývojové prostředí s řadou pokročilých vlastností. Krom tradiční nadílky oprav přináší nový systém správy ladících bodů, nový způsob definice tříd, prostor pro objekty, které nemusí procházet GC a mnoho dalšího.

    Pavel Křivánek | Komentářů: 9
    26.4. 04:55 | Zajímavý software

    Microsoft zveřejnil na GitHubu zdrojové kódy MS-DOSu 4.0 pod licencí MIT. Ve stejném repozitáři se nacházejí i před lety zveřejněné zdrojové k kódy MS-DOSu 1.25 a 2.0.

    Ladislav Hagara | Komentářů: 45
    25.4. 17:33 | Nová verze

    Canonical vydal (email, blog, YouTube) Ubuntu 24.04 LTS Noble Numbat. Přehled novinek v poznámkách k vydání a také příspěvcích na blogu: novinky v desktopu a novinky v bezpečnosti. Vydány byly také oficiální deriváty Edubuntu, Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Unity a Xubuntu. Jedná se o 10. LTS verzi.

    Ladislav Hagara | Komentářů: 14
    KDE Plasma 6
     (75%)
     (8%)
     (2%)
     (15%)
    Celkem 879 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    pbuilder – balíčkování pro Debian a Ubuntu

    18. 8. 2009 | Daniel Kolesa | Návody | 4686×

    Pbuilder (Personal Builder) je sada skriptů určená pro balíčkování. Umožňuje balíčkovat pro různé distribuce a architektury bez nutnosti instalace jiného systému, využívá tzv. chrooty. Hodí se třeba pro backporty do starších verzí distribuce, balíčkování pro repozitáře (sestavení balíků v chrootu je vždy stejné), sám si instaluje všechny závislosti. Pro ušetření místa se ke kompresi chrootu používá formát tar.gz.

    Obsah

    Co budeme potřebovat?

    link
    1. PC/Mac/cokoliv_kde_běží_Linux s Debianem nebo Ubuntu.
    2. Znalost Bash.
    3. Pokud nechcete, aby kompilace trvala věky, dostatečně výkonný CPU.

    Začínáme

    link

    Nejdříve si budeme muset pbuilder nainstalovat, udělejte to jakýmkoliv způsobem; apt-get, Aptitude, Synaptic, …

    Doporučuji nainstalovat také balíky dpkg-dev, devscripts, fakeroot, cdebootstrap a je-li to možné, také sudo, pokud chybí.

    Po instalaci se vám v /usr/bin objeví pár binárek, v /usr/lib/pbuilder několik scriptů (není třeba je upravovat) a také výchozí konfigurační soubor /etc/pbuilderrc. Ten obsahuje pouze jeden řádek, a to mirror Debianu. Většinou se pro normální využití nehodí, a proto si za chvíli vytvoříme vlastní konfigurační soubor.

    Konfigurujeme

    link

    Váš uživatelský konfigurační soubor pbuilderu se nachází ve vaší domovské složce, jmenuje se .pbuilderrc a vypadá třeba takhle.

    #!/bin/bash
    
    # Kódová jména větví Debianu
    UNSTABLE_CODENAME="sid"
    TESTING_CODENAME="squeeze"
    STABLE_CODENAME="lenny"
    
    # Dostupná vydání Debianu
    DEBIAN_SUITES=($UNSTABLE_CODENAME $TESTING_CODENAME $STABLE_CODENAME
        "unstable" "testing" "stable")
    
    # Dostupná vydání Ubuntu
    UBUNTU_SUITES=("jaunty" "intrepid" "hardy")
    
    # Servery, ze kterých stahovat
    DEBIAN_MIRROR="ftp.debian.org"
    UBUNTU_MIRROR="archive.ubuntu.com"
    UBUNTU_PORTS_MIRROR="ports.ubuntu.com"
    
    # Nastavit architekturu, pokud nezadána
    : ${ARCH:="$(dpkg --print-architecture)"}
    
    NAME="$DIST"
    # pokud je architektura nastavena, použít jiný název tarballu
    if [ -n "${ARCH}" ]; then
        NAME="$DIST-$ARCH"
        DEBOOTSTRAPOPTS=("--arch" "$ARCH" "${DEBOOTSTRAPOPTS[@]}")
    fi
    
    DISTRIBUTION="$DIST"
    BASETGZ="/var/cache/pbuilder/$NAME-base.tgz"
    BUILDRESULT="/var/cache/pbuilder/$NAME/result/"
    APTCACHE="/var/cache/pbuilder/$NAME/aptcache/"
    BUILDPLACE="/var/cache/pbuilder/build/"
    
    if $(echo ${DEBIAN_SUITES[@]} | grep -q "$DIST"); then
        # Debian
        MIRRORSITE="http://$DEBIAN_MIRROR/debian/"
        COMPONENTS="main contrib non-free"
    elif $(echo ${UBUNTU_SUITES[@]} | grep -q "$DIST"); then
        # Ubuntu
        MIRRORSITE="http://$UBUNTU_MIRROR/ubuntu/"
        COMPONENTS="main restricted universe multiverse"
    else
        echo "Neznámá distribuce: $DIST"
        exit 1
    fi
    
    # pro architektury armel a lpia použít ubuntu-ports, když se kompiluje pro ubuntu
    case $ARCH in
        armel|lpia)
            if $(echo ${UBUNTU_SUITES[@]} | grep -q "$DIST"); then
                    MIRRORSITE="http://$UBUNTU_PORTS_MIRROR/ubuntu-ports/"
            fi
        ;;
    esac
    
    # když se kompiluje více věcí, které na sobě závisí, je dobré mít kompilační skript,
    # který po každé kompilaci vytvoří lokální repozitář, a ten pak nastavit jako OTHERMIRROR
    # (a také ve skriptu pohlídat, aby se rozbalovalo jen jednou
    #  a komprimovalo také jednou, před a po kompilaci všeho)
    OTHERMIRROR="deb file:///var/cache/pbuilder/$NAME/result/ /"
    
    if $(echo ${UBUNTU_SUITES[@]} | grep -q "$DIST"); then
        case $ARCH in
            armel|lpia)
                if [ -z "$OTHERMIRROR" ]; then
                    OTHERMIRROR="deb http://$UBUNTU_PORTS_MIRROR/ubuntu-ports/ $DIST-security $COMPONENTS | deb http://$UBUNTU_PORTS_MIRROR/ubuntu-ports/ $DIST-updates $COMPONENTS"
                else
                    OTHERMIRROR="$OTHERMIRROR | deb http://$UBUNTU_PORTS_MIRROR/ubuntu-ports/ $DIST-security $COMPONENTS | deb http://$UBUNTU_PORTS_MIRROR/ubuntu-ports/ $DIST-updates $COMPONENTS"
                fi
            ;;
            *)
                if [ -z "$OTHERMIRROR" ]; then
                    OTHERMIRROR="deb http://$UBUNTU_MIRROR/ubuntu/ $DIST-security $COMPONENTS | deb http://$UBUNTU_MIRROR/ubuntu/ $DIST-updates $COMPONENTS"
                else
                    OTHERMIRROR="$OTHERMIRROR | deb http://$UBUNTU_MIRROR/ubuntu/ $DIST-security $COMPONENTS | deb http://$UBUNTU_MIRROR/ubuntu/ $DIST-updates $COMPONENTS"
                fi
            ;;
        esac
    fi
    
    # použít ccache pro rychlejší opakované kompilace
    sudo mkdir -p $PBUILDERPLACE/ccache
    sudo chmod a+w $PBUILDERPLACE/ccache
    export CCACHE_DIR="$PBUILDERPLACE/ccache"
    export PATH="/usr/lib/ccache:${PATH}"
    BINDMOUNTS="${CCACHE_DIR} $PBUILDERPLACE/$NAME/result"
    
    # extra balíky v chrootu
    EXTRAPACKAGES="ccache"
    

    Jak vidíte, je to vcelku obyčejný bashovský script. Všechny proměnné můžete ovlivnit při spouštění pbuilderu – např.:

    sudo DIST=hardy pbuilder create

    Nyní vám popíšu proměnné, které pbuilder využívá (všechny se dají nahradit parametry pbuilderu), ostatní už si snad napíšete sami, když byla v úvodu požadována znalost bashe ;-)

    DISTRIBUTION
    Název distribuce, pro kterou se bude kompilovat.
    MIRRORSITE
    Mirror distribuce, který se zapíše do chrootového sources.list a ze kterého se bude chroot stahovat.
    COMPONENTS
    Komponenty hlavního repozitáře distribuce použité v chrootovém sources.list.
    OTHERMIRROR
    Ostatní repozitáře, které chcete v chrootu v sources.list; většinou se používá váš lokální repozitář. Můžete je oddělit znakem | (viz .pbuilderrc).
    BINDMOUNTS
    Cesty ze základního systému, které se připojí pomocí parametru --bind do chrootu po rozbalení.
    BASETGZ
    Cesta k chroot tarballu (při tvorbě a rozbalování).
    BUILDRESULT
    Cesta, kam přesouvat binární balíky a zdrojové balíky.
    APTCACHE
    Cesta, kam ukládat stažené balíčky pro chroot.
    BUILDPLACE
    Adresář s rozbalenými chrooty.

    Vytváříme chrooty

    link

    Když už máme hotový konfigurační soubor, můžeme si vytvořit první chroot. Spusťte tedy:

    sudo DIST=squeeze pbuilder create

    Pak čekejte, v závislosti na vašem internetovém připojení to bude chvilka, nebo věčnost. Pokud je nutné chroot aktualizovat, nahraďte create slovem update.

    Kompilujeme

    link

    Teď už můžeme balíček zkompilovat. Pokud máte zdrojový balík, spusťte prostě:

    sudo DIST=squeeze pbuilder build
    *.dsc

    a pokud ne, můžete použít pdebuild v adresáři se zdrojáky – musí obsahovat adresář debian.

    sudo DIST=squeeze pdebuild

    Užitečné parametry pbuilderu

    link

    Programu můžete zadat různé parametry, ty se zadávají na konec příkazu, ale při parametru build před název dsc souboru. Zde uvedu pár základních, o dalších se můžete dočíst v manuálové stránce.

    Akce

    link
    --create | create
    Vytvořit chroot.
    --update | update
    Aktualizovat chroot.
    --build | build
    Zkompilovat balíček.
    --clean | clean
    Vyčistí BUILDPLACE a APTCACHE
    --login | login
    Zachrootuje se do BASETGZ.
    --execute | execute
    Spustí něco v BASETGZ.
    --dumpconfig | dumpconfig
    Zaznamená konfigurační informace, pro debugging.
    --debuild | debuild
    Stejné jako pdebuild.

    Parametry

    link
    --othermirror "deb something | deb somethingelse"
    Viz OTHERMIRROR, ale měl by končit znakem |, pokud je specifikovaný jako parametr.
    --override-config
    Při upgradu chrootu dělá i apt-get update. Volby --distribution, --components, --mirror--othermirror jsou platné, jen když je --override-config povoleno.
    --configfile SOUBOR
    Vlastní cesta ke konfiguráku pbuilderu.
    --debbuildopts "-volba -volba2"
    Parametry předané dpkg-buildpackage programu.
    --logfile SOUBOR
    Pokud chcete zaznamenávat výstup do souboru.
    --debootstrapopts --p1 --p2 --p3
    Parametry debootstrapu.
    --debootstrap debootstrap | cdebootstrap
    Výběr, jaký debootstrap se bude používat.
    --save-after-login | --save-after-exec
    Při login nebo execute akcích zaznamenat stav chrootu.
    --autocleanaptcache
    Automaticky vyčistit apt cache.
    --removepackages "balíky"
    Balíčky k odstranění z chrootu při tvorbě.
    --extrapackages "balíky"
    Balíčky k instalaci do chrootu při tvorbě – funguje i při update, když je --override-config zapnuto.
    --no-targz
    Nebude se rozbalovat chroot a použije se --buildplace.

    Závěr

    link

    Tento návod byl určen jen jako úvod do práce s pbuilderem. Dále doporučuji pročíst dokumenty uvedené pod článkem jako Odkazy a zdroje.

           

    Hodnocení: 75 %

            š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ář

    Jakub Lucký avatar 18.8.2009 00:25 Jakub Lucký | skóre: 40 | Praha
    Rozbalit Rozbalit vše Re: pbuilder – balíčkování pro Debian a Ubuntu
    --debuild | debuild Stejné jako pdebuild.
    Ale nikde není uvedené, co dělá pdebuild ;)

    Jinak zajímavý článek
    If you understand, things are just as they are; if you do not understand, things are just as they are.
    18.8.2009 07:12 Bednič
    Rozbalit Rozbalit vše Re: pbuilder – balíčkování pro Debian a Ubuntu

    Čítaš niekedy čo napíšeš, tak toto je napísané pre toho kto to nepetrebuje čítať, kto nevie o čo ide aj tak nepochopí čo je čo, takže zas ďaľší zbytočný článok, celkom by ma to zaujímalo, takže sadni si k tomu znova a prepíš to s vysvetlením pojmov, lebo viac mi napovie "man", dík.

    18.8.2009 07:26 MoB
    Rozbalit Rozbalit vše Re: pbuilder – balíčkování pro Debian a Ubuntu

    S lítostí se musím připojit k tomuto názoru... na základě tohoto stručného výtahu z man stránek se to nedá pochopit, je to spíš stručný seznam klíčových slov pro toho, kdo to všechno ví a zná a jenom se mu nechce si to pamatovat. (Jestli to tak ovšem bylo myšleno, pak je to napsáno dobře.)

    18.8.2009 08:15 Robert Krátký | skóre: 94 | blog: Robertův bloček
    Rozbalit Rozbalit vše Re: pbuilder – balíčkování pro Debian a Ubuntu
    Vzhledem k tomu, že se jedná o poměrně pokročilé a zároveň úzkoprofilové téma, tak je to pochopitelné. Pokud se chce někdo vyhnout trablům při zabalení jednoho balíčku pro osobní potřebu, použije checkinstall. Ale pokud se chce opravdu naučit balit, podívá se nejprve na Seriál: Balíčky pro Debian a potom mu může tento článek posloužit jako rychlá reference, pokud se rozhodne zkoumat další možnosti, v tomto případě pbuilder.
    18.8.2009 19:12 eoj
    Rozbalit Rozbalit vše Re: pbuilder – balíčkování pro Debian a Ubuntu
    Ano, článek na nic, už to zaznělo výše.
    18.8.2009 08:18 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: pbuilder – balíčkování pro Debian a Ubuntu
    +1, bohužel
    Quando omni flunkus moritati
    18.8.2009 11:25 Jan Včelák | skóre: 28 | blog: Fcelda
    Rozbalit Rozbalit vše Re: pbuilder – balíčkování pro Debian a Ubuntu
    Tohle podle mě patří spíše do blogu. Na článek je to slabý... :-(

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.