Dalším způsobem instalace a manipulace s balíčky je systém převzatý z FreeBSD – PKGNG. Jedná se o novější a jednodušší náhradu předchozího systému. Ten instaluje binární balíčky podobným způsobem, jako třeba equo ze Sabayonu nebo aptitude z Debianu. Pro instalaci používá tento systém repozitáře, které je možné nastavit úpravou souboru /usr/local/etc/pkg.conf
. Jeho výchozí obsah vypadá např. takto:
packagesite: http://getmirror.PC-BSD.org/packages/9.1-RELEASE/amd64 HTTP_MIRROR: http PUBKEY: /usr/local/etc/pkg-pubkey.cert PKG_CACHEDIR: /usr/local/tmp
Další možností nastavení repozitáře je změna/vytvoření proměnné prostředí PACKAGESITE.
Tento správce balíčků má velmi mnoho možností a parametrů a nemělo by smysl si zde všechny vyjmenovávat. Proto opět uvedu jednoduchý příklad a odkážu na příručku FreeBSD 9.1 nebo web MeBSD.com.
Lokální nápovědu lze vyvolat příkazem:
~% pkg help akce (např. delete, info, install, search atd.)
Pro srovnání provedu pomocí tohoto správce instalaci editoru Pinta. Jako první si ověříme, že daný balíček je k dispozici a můžeme k tomu využít hned několik parametrů:
~% pkg search pinta pinta-1.4 Simple Gtk# Paint Program ~% pkg search -s pinta pinta-1.4 flat size is: 2 MB pinta-1.4 package size is: 589 kB ~% pkg search -f pinta Name : pinta Version : 1.4 Origin : graphics/pinta Prefix : /usr/local Categories : graphics Licenses : MIT Maintainer : mono@FreeBSD.org WWW : http://pinta-project.com/ Comment : Simple Gtk# Paint Program Flat size : 2 MB Pkg size : 589 kB Description : Pinta is a drawing/editing program modeled after Paint.NET. Its goal is to provide a simplified alternative to GIMP for casual users. WWW: http://pinta-project.com/ ~% pkg search -o pinta pinta-1.4: graphics/pinta ~% pkg search -p pinta pinta-1.4: /usr/local
Instalace se provede příkazem:
~% sudo pkg install pinta Password: Updating repository catalogue Repository catalogue is up-to-date, no need to fetch fresh copy The following packages will be installed: Installing mono: 3.0.3_1 Installing gtk-sharp: 2.12.10_1 Installing mono-addins: 0.6.2 Installing pinta: 1.4 The installation will require 235 MB more space 54 MB to be downloaded Proceed with installing packages [y/N]: y mono-3.0.3_1.txz 100% 51MB 945.3KB/s 1.3MB/s 00:55 gtk-sharp-2.12.10_1.txz 100% 2833KB 944.5KB/s 463.4KB/s 00:03 mono-addins-0.6.2.txz 100% 378KB 377.7KB/s 377.7KB/s 00:01 pinta-1.4.txz 100% 590KB 589.8KB/s 589.8KB/s 00:01 Checking integrity... done Installing mono-3.0.3_1... done Installing gtk-sharp-2.12.10_1... done Installing mono-addins-0.6.2... done Installing pinta-1.4... done
Jak je vidět z výpisu, stahovaný balík má 54 MB, tedy cca polovinu oproti PBI, a celková velikost včetně instalovaných závislostí je 235 MB, což je ve srovnání s PBI cca 47 %. Takto instalované aplikace se automaticky objeví v hlavním menu GNOME a je možné je odtud spouštět.
Vzhledem k tomu, že tento způsob instaluje binární balíčky, je instalace po stažení velmi rychlá. Proto bude nejspíš využíván nejčastěji, pokud nebude nezbytné využít PBI nebo další způsob, kterým jsou porty.
Tato správa balíčků pochází z FreeBSD a automaticky přebírá všechny porty z jeho aktuální verze. Instalace aplikací z portů je velmi odlišná od výše uvedených možností. Jedná se totiž o instalaci ze zdrojových kódů, které je nutné kompilovat. Z toho vyplývá, že při instalaci větších aplikací může docházet k výraznému zatížení stroje a instalace může trvat delší dobu. Na druhou stranu tento způsob instalace umožňuje konfigurovat u instalované aplikace spoustu věcí, pokud je to nutné a vhodné. Výhodou portů je, že je v nich velmi rozsáhlá sada aplikací (přes 24 000 položek).
Jako první je nutné sestavu portů stáhnout a rozbalit na lokální systém. To je možné udělat dvěma způsoby. Prvním je pomocí Ovládacího panelu PC-BSD → Správce systému. Na záložce Úlohy jsou dvě položky – Stáhnout zdrojový kód Systému a Fetch Ports Tree. Druhou možností je spustit příkaz
~% sudo portsnap fetch extract update
Stažení balíku není žádný velký problém, vzhledem k jeho velikosti cca 68 MB. Rozbalení na lokální systém vzhledem k počtu souborů už ale nějakou dobu trvá. Celý strom portů se rozbalí do adresáře /usr/ports
, kde jsou další podadresáře s tématickými kategoriemi a v nich potom jednotlivé aplikace.
Nad stromem portů je definováno jednoduché vyhledávání, ke kterému slouží dva příkazy:
~% cd /usr/ports ~% make quicksearch name=pinta Port: pinta-1.4 Path: /usr/ports/graphics/pinta Info: Simple Gtk# Paint Program # cd /usr/ports # make search name=pinta Port: pinta-1.4 Path: /usr/ports/graphics/pinta Info: Simple Gtk# Paint Program Maint: mono@FreeBSD.org B-deps: atk-2.0.1 bitstream-vera-1.10_5 cairo-1.10.2_5,2 compositeproto-0.4.2 cups-client-1.5.4_1 damageproto-1.2.1 desktop-file-utils-0.18 encodings-1.0.4,1 expat-2.0.1_2 fixesproto-5.0 font-bh-ttf-1.0.3 font-misc-ethiopic-1.0.3 font-misc-meltho-1.0.3 font-util-1.2.0 fontconfig-2.9.0,1 freetype2-2.4.11 gamin-0.1.10_4 gdk-pixbuf-2.23.5_3 gettext-0.18.1.1 gio-fam-backend-2.28.8_1 glib-2.28.8_5 gmake-3.82_1 gobject-introspection-0.10.8_3 gtk-2.24.6_2 gtk-sharp-2.12.10_1 gtk-update-icon-cache-2.24.6_1 hicolor- icon-theme-0.12 inputproto-2.0.2 intltool-0.41.1 jasper- 1.900.1_10 jbigkit-1.6 jpeg-8_4 kbproto-1.0.5 libICE- 1.0.7,1 libSM-1.2.0,1 libX11-1.4.4,1 libXau-1.0.6 libXcomposite-0.4.3,1 libXcursor-1.1.12 libXdamage-1.1.3 libXdmcp-1.1.0 libXext-1.3.0_1,1 libXfixes-5.0 libXft- 2.1.14 libXi-1.4.5,1 libXinerama-1.1.1,1 libXrandr-1.3.2 libXrender-0.9.6 libXt-1.1.1,1 libffi-3.0.11 libfontenc-1.1.0 libglade2-2.6.4_5 libiconv-1.14 libpthread-stubs-0.3_3 libxcb-1.7 libxml2-2.7.8_5 mkfontdir-1.0.6 mkfontscale-1.0.9 mono-3.0.3_1 mono-addins-0.6.2 p5-XML-LibXML-2.0004,1 p5-XML-NamespaceSupport-1.11 p5-XML-Parser-2.41_1 p5-XML-SAX-0.99 p5-XML-SAX-Base-1.08 pango-1.28.4_1 pcre-8.32 perl-5.14.2_2 pixman-0.24.2 pkgconf-0.8.9 png-1.5.14 python27-2.7.3_6 randrproto-1.3.2 renderproto-0.11.1 shared-mime-info-1.0_2 tiff-4.0.3 xcb-util-0.3.9_1,1 xcb-util-renderutil-0.3.8 xextproto-7.2.0 xineramaproto-1.2.1 xmlcatmgr-2.2 xorg-fonts-truetype-7.5.1 xproto-7.0.22 R-deps: atk-2.0.1 bitstream-vera-1.10_5 cairo-1.10.2_5,2 compositeproto-0.4.2 cups- client-1.5.4_1 damageproto-1.2.1 desktop-file-utils-0.18 encodings-1.0.4,1 expat-2.0.1_2 fixesproto-5.0 font-bh-ttf-1.0.3 font-misc-ethiopic-1.0.3 font-misc-meltho-1.0.3 font-util-1.2.0 fontconfig-2.9.0,1 freetype2-2.4.11 gamin-0.1.10_4 gdk-pixbuf-2.23.5_3 gettext-0.18.1.1 gio-fam-backend-2.28.8_1 glib-2.28.8_5 gobject-introspection- 0.10.8_3 gtk-2.24.6_2 gtk-sharp-2.12.10_1 gtk-update-icon-cache-2.24.6_1 hicolor-icon-theme-0.12 inputproto-2.0.2 jasper-1.900.1_10 jbigkit-1.6 jpeg-8_4 kbproto-1.0.5 libICE-1.0.7,1 libSM-1.2.0,1 libX11-1.4.4,1 libXau-1.0.6 libXcomposite-0.4.3,1 libXcursor-1.1.12 libXdamage-1.1.3 libXdmcp-1.1.0 libXext-1.3.0_1,1 libXfixes-5.0 libXft-2.1.14 libXi-1.4.5,1 libXinerama-1.1.1,1 libXrandr-1.3.2 libXrender-0.9.6 libXt-1.1.1,1 libffi-3.0.11 libfontenc-1.1.0 libglade2-2.6.4_5 libiconv-1.14 libpthread-stubs-0.3_3 libxcb-1.7 libxml2-2.7.8_5 mkfontdir-1.0.6 mkfontscale-1.0.9 mono-3.0.3_1 mono-addins-0.6.2 p5-XML-LibXML-2.0004,1 p5-XML-NamespaceSupport-1.11 p5-XML-SAX-0.99 p5-XML-SAX-Base-1.08 pango-1.28.4_1 pcre-8.32 perl-5.14.2_2 pixman-0.24.2 pkgconf-0.8.9 png-1.5.14 python27-2.7.3_6 randrproto-1.3.2 renderproto-0.11.1 shared-mime-info-1.0_2 tiff-4.0.3 xcb-util-0.3.9_1,1 xcb-util-renderutil-0.3.8 xextproto-7.2.0 xineramaproto-1.2.1 xmlcatmgr-2.2 xorg-fonts-truetype-7.5.1 xproto-7.0.22 WWW: http://pinta-project.com/
Hledání je samozřejmě možné i pomocí běžného systémového příkazu:
~% whereis pinta pinta: /usr/ports/graphics/pinta
Instalaci pomocí portů opět předvedu na jednoduchém příkladě a to sice MPD – serveru pro přehrávání hudebních souborů. Ten je v portech v adresáři /usr/ports/audio/musicpd
. Obsah tohoto adresáře je vidět na následujícím obrázku. Jsou v něm čtyři soubory a jeden podadresář.
Soubor Makefile
je poměrně obsáhlý a slouží k vlastnímu překladu. Ještě ho doplňují soubory z adresáře files, kde jsou různé patche, které slouží k tomu, aby bylo možné danou aplikaci instalovat a spouštět na systému FreeBSD. Obsah ostatních tří souborů je v přílohách distinfo.txt, pkg-descr.txt a pkg-plist.txt.
Instalace se nejlépe spustí příkazem pro konfiguraci:
~% make configure
Objeví se formulář jako na obrázku. V něm je pak možné nastavit, s jakými parametry se bude aplikace kompilovat. Po nastavení požadovaných parametrů se stiskem OK spustí konfigurace a stahování potřebných balíčků. Pokud má instalovaná aplikace nějaké závislosti, které nejsou zatím instalované, bude se stahovat více balíčků. Je také možné, že se objeví více konfiguračních formulářů. Během konfigurace se v adresáři aplikace vytvoří podadresář work
, který obsahuje zdrojové soubory aplikace. Všechny komprimované balíčky, které se stáhnou během konfigurace, se ukládají do adresáře /usr/ports/disfiles
. Pokud konfigurace skončí úspěšně, je možné provést instalaci příkazem
~% make install, popř. make install clean
Příkaz clean
zajistí smazání adresáře work
se zdrojovými soubory aplikace. Obsah adresáře distfiles
se tím nezmění. Příkaz je možné zjednodušit a zadat rovnou s automatickou konfigurací:
~% make install clean
Po úspěšné instalaci je možné ověřit přítomnost nového balíku pomocí příkazů
~% pkg info -g music\* musicpd-0.17.2_2 A remote-controllable music daemon
nebo
~% pkg info -gf music\* Name : musicpd Version : 0.17.2_2 Origin : audio/musicpd Prefix : /usr/local Categories : ipv6 audio Licenses : GPLv2 Maintainer : crees@FreeBSD.org WWW : http://www.musicpd.org/ Comment : A remote-controllable music daemon Options : AAC: off AO: off ARCHIVE: off AVAHI: off CUE: off FFMPEG: on FLAC: on HTTPD: off ID3TAG: on IPV6: on JACK: off LAME: off LASTFM: off MIKMOD: off MMS: off MODPLUG: off MUSEPACK: off PULSEAUDIO: off SAMPLERATE: off SHOUTCAST: off SNDFILE: on TREMOR: off VORBIS: on WAV: on Flat size : 473 kB Description : Music Player Daemon (MPD) allows remote access for playing music (MP3, MP4, Ogg, Flac, and more) and managing playlists. The design focus is on integrating a computer into a stereo system that provides control for music playback over a local network. WWW: http://www.musicpd.org/
V následujícím dílu dokončím kapitolu o administraci balíčků a zaměřím se na souborový systém ZFS.