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 04:55 | Nová verze

    OpenJS Foundation, oficiální projekt konsorcia Linux Foundation, oznámila vydání verze 22 otevřeného multiplatformního prostředí pro vývoj a běh síťových aplikací napsaných v JavaScriptu Node.js (Wikipedie). V říjnu se verze 22 stane novou aktivní LTS verzí. Podpora je plánována do dubna 2027.

    Ladislav Hagara | Komentářů: 0
    dnes 04:22 | Nová verze

    Byla vydána verze 8.2 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a v informačním videu. Zdůrazněn je průvodce migrací hostů z VMware ESXi do Proxmoxu.

    Ladislav Hagara | Komentářů: 0
    dnes 04:11 | Nová verze

    R (Wikipedie), programovací jazyk a prostředí určené pro statistickou analýzu dat a jejich grafické zobrazení, bylo vydáno ve verzi 4.4.0. Její kódové jméno je Puppy Cup.

    Ladislav Hagara | Komentářů: 0
    včera 22:44 | IT novinky

    IBM kupuje společnost HashiCorp (Terraform, Packer, Vault, Boundary, Consul, Nomad, Waypoint, Vagrant, …) za 6,4 miliardy dolarů, tj. 35 dolarů za akcii.

    Ladislav Hagara | Komentářů: 6
    včera 15:55 | Nová verze

    Byl vydán TrueNAS SCALE 24.04 “Dragonfish”. Přehled novinek této open source storage platformy postavené na Debianu v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 13:44 | IT novinky

    Oznámeny byly nové Raspberry Pi Compute Module 4S. Vedle původní 1 GB varianty jsou nově k dispozici také varianty s 2 GB, 4 GB a 8 GB paměti. Compute Modules 4S mají na rozdíl od Compute Module 4 tvar a velikost Compute Module 3+ a předchozích. Lze tak provést snadný upgrade.

    Ladislav Hagara | Komentářů: 0
    včera 04:44 | Nová verze

    Po roce vývoje od vydání verze 1.24.0 byla vydána nová stabilní verze 1.26.0 webového serveru a reverzní proxy nginx (Wikipedie). Nová verze přináší řadu novinek. Podrobný přehled v souboru CHANGES-1.26.

    Ladislav Hagara | Komentářů: 0
    včera 04:33 | Nová verze

    Byla vydána nová verze 6.2 ž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.14.

    Ladislav Hagara | Komentářů: 0
    včera 04:22 | Nová verze

    Byla vydána nová verze 30.0.0 frameworku pro vývoj multiplatformních desktopových aplikací pomocí JavaScriptu, HTML a CSS Electron (Wikipedie, GitHub). Chromium bylo aktualizováno na verzi 124.0.6367.49, V8 na verzi 12.4 a Node.js na verzi 20.11.1. Electron byl původně vyvíjen pro editor Atom pod názvem Atom Shell. Dnes je na Electronu postavena celá řada dalších aplikací.

    Ladislav Hagara | Komentářů: 2
    včera 04:11 | Nová verze

    Byla vydána nová verze 9.0.0 otevřeného emulátoru procesorů a virtualizačního nástroje QEMU (Wikipedie). Přispělo 220 vývojářů. Provedeno bylo více než 2 700 commitů. Přehled úprav a nových vlastností v seznamu změn.

    Ladislav Hagara | Komentářů: 0
    KDE Plasma 6
     (72%)
     (9%)
     (2%)
     (17%)
    Celkem 739 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 | 4685×

    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.