Hlavní navigace

PC-BSD: závěr seriálu

16. 9. 2013
Doba čtení: 9 minut

Sdílet

V minulém článku našeho poměrně dlouhého seriálu o operačním systému PC-BSD jsme skončili dlouhodobější odbočku do světa užitečné technologie jailů. V úvodu dnešního posledního dílu celého seriálu se k jailům krátce vrátíme. Celý seriál pak bude ukončen popisem provozních zkušeností a porovnání s Linuxem.

V některém z minulých dílů jsem popisoval problémy s instalací a provozem Eclipse. Vzhledem k tomu, že toto prostředí je jediné, které je schopné v aktuální verzi provozovat komponentový Java framework Vaadin, chtěl jsem situaci nějak řešit. Jedním z možných řešení byla instalace virtuálního stroje třeba s Debianem či Lubuntu a provoz Eclipse tam. Já jsem se ale rozhodl zkusit i variantu druhou – provoz Eclipse v jailu.

K tomu je potřeba vytvořit nový jail a provést standardní aktualizace. Pak stačí instalovat jediný balíček – eclipse-devel. Pod ním se skrývá Eclipse 4.2 Juno, tedy poměrně aktuální verze. Potřebné závislosti se instalují automaticky. Po prvním spuštění Eclipse se objeví množství aktualizací, které jsou všechny označeny k instalaci. V tomto nastavení ale aktualizace neproběhne z důvodu nesplněných závislostí. Je třeba všechny aktualizace odznačit a zkusit instalaci jednotlivých položek. To se nakonec po chvíli snažení a laborování podařilo a Eclipse se bez problémů rozběhlo. Jediné, co se z aktualizací objevuje jako problematické, je toto: Object Teams Patch for JDT/Core 2.1.1.201209011847

Další nastavení nebudu popisovat, jenom upozorním na jednu věc. V dané verzi není defaultně instalovaný Market. Pro jeho zprovoznění je třeba provést několik kroků:

  • v menu Help otevřít položku Install New Software
  • z přehledu vybrat tuto stránku: Juno – http://download.eclipse.or­g/releases/juno
  • do vyhledávání zadat řetězec market
  • instalovat nalezenou položku Marketplace Client

Pak už stačí instalovat potřebné položky pro spuštění vývoje ve Vaadin:

  • po instalaci Marketu vyhledat výraz jst a instalovat všechny tři nabízené položky: JST Server Adapters, JST Server Adapters ExtensionsJST Server UI
  • v Marketu zadat vyhledání výrazu ivyde a instalovat Apache IvyDE
  • v Marketu zadat vyhledání výrazu vaadin a instalovat Vaadin Plugin for Eclipse

Pak už stačí instalovat nějaký aplikační server (já používám pro vývoj Tomcat a pak exportuji do WAR souboru optimalizovaného pro GlassFish 4) a je možné vyzkoušet vývoj a provoz webových aplikací. Pro využití některých nových možností jsem nakonec přidal ještě balíček s OpenJDK 7 a nastavil ho v projektech jako defaultní JVM.

Tím bych uzavřel rozsáhlou oblast jailsů a vrátil se zpět k samotnému PC-BSD. Musím říct, že zkušenosti jsou pořád velmi pozitivní a jsem rád, že jsem se k přechodu odhodlal a zatím jsem nenarazil na nic, co by mne pohnulo k návratu na Linux.

Přesto bych ale upozornil na tři případy, na které by mohli narazit uživatelé starších verzí PC-BSD. V novějších verzích už je vše v pořádku a kromě toho je provedeno množství změn(nyní je aktuální 9.2-RELEASE – viz zde: http://blog.pcbsd.org/2013/08/new-images-available-for-download/

První zádrhel se vyskytl ve snaze o aktualizaci systému. Najednou se začalo objevovat hlášení, že nejsou k dispozici žádné repozitáře pro aktualizaci. Řešení bylo nakonec celkem jednoduché a opět se osvědčilo při nárazu na problém nahlédnout do blogu: http://blog.pcbsd.org/2013/07/pc-bsd-now-uses-a-cdn/

Nápravu zjednalo 5 jednoduchých kroků:

  • spustí se příkaz # pc-updatemanager check
  • ten nabídne instalaci CDN aplikace příkazem # pc-updatemanager install „kopie názvu balíčku“
  • obsah souboru /usr/local/etc/pkg.conf se upraví takto:
    packagesite: http://pkg.cdn.pcbsd.org/9.1-RELEASE/amd64
    PUBKEY: /usr/local/etc/pkg-pubkey.cert
    PKG_CACHEDIR: /usr/local/tmp
  • spustí se příkaz # pkg update
  • 2× po sobě se spustí příkaz # pkg upgrade

Stejný problém byl samozřejmě i v jailsech, které byly vytvořeny dříve. Zde je postup trochu odlišný a funguje následovně:

  • upraví se soubor /usr/local/etc/pkg.conf a vloží do něj pouze jeden z řádků:
    packagesite: http://pkg.cdn.pcbsd.org/9.1-RELEASE/amd64
    packagesite: http://pkg.cdn.pcbsd.org/9.2-RELEASE/amd64
  • spustí se příkaz # pkg update, který stáhne balíček repo.txz
  • spustí se příkaz # pkg upgrade, který aktualizuje balíček pkg na aktuální verzi 1.1.4_1
  • spustí se znovu příkaz # pkg upgrade, který stáhne balíčky digests.txzpackagesite.txz a provede příslušné aktualizace ostatních balíčků

Celý postup je na příkladu jailu PostgreSQL uveden v souboru CDN-update.txt.

V nejbližší době čekám na uveřejnění postupu aktualizace z aktuální verze na novou stabilní verzi, která vychází z FreeBSD 9.2-RC1. Podle blogu jsou změny celkem zajímavé, tak jsem zvědavý, jak to vše dopadne. V nejbližší době mám v plánu novou verzi vyzkoušet na virtuálním stroji a těšit se na aktualizaci.

Předchozí událost vlastně nebyla žádným zásadním problémem, ale opět se následně ukázalo, že daň za rolling updates může být někdy nepříjemná. Ke konci července totiž proběhla poměrně rozsáhlá a zásadní aktualizace. Na první pohled je to zřejmé již z úvodní obrazovky, kde došlo ke změně názvu verze z původního Isotope Edition na Isotope Infusion. Samotná aktualizace sice trvala dost dlouho, ale proběhla a doběhla bez nejmenších problémů. Velmi nepříjemné překvapení ale nastalo po restartu stroje. Bootování bylo obvyklé a jako obvykle se objevila i úvodní obrazovka GDM s nabídkou zadání uživatele a jeho přístupového hesla. K dispozici totiž bylo pouze zadání jména uživatele, ale už nikoliv zadání jeho hesla a dokonce ani nastavení lokalizace, klávesnice a sezení. To byl ovšem problém dosti zásadní, protože nebylo možné se systémem pracovat.

Vypadalo to na problém v GDM, protože jinak se systém zdál v pořádku a žádné problémy nehlásil. Na netu jsem nic přínosného neobjevil, takže jsem musel zvolit nějakou cestu k řešení. Bylo samozřejmě jasné, že se objeví náprava. Nebylo ale jasné, kdy se objeví a jak dlouho bych musel čekat s nějakým provizorním řešením. Nakonec jsem se rozhodl pro radikálnější řešení, které bude mít dlouhodobou platnost – úplně jsem GDM odstavil a nahradil ho aplikací Slim. Slim jsem již dříve používal na Linuxu, a tak vím, co od něj čekat. Pro pokročilejšího uživatele je bezproblémový a snadno nastavitelný. Postup při jeho implementaci byl následující:

  • restartuje se stroj a při nabídce možností se zvolí varianta Single User Mode – nabídka Boot in Safe Mode
  • v této volbě systém defaultně nastartuje v režimu pouze pro čtení. Aby bylo možné provádět změny, je nutné systém připojit pomocí dvou příkazů:
    # mount -u /
      # mount -a
  • upraví se soubor /etc/rc.conf.pcbsd a provedou dvě změny. Zakáže se start GDM
    # Enable the gdm display manager
    gdm_enable="NO"

    a vypustí se z příslušné sekce jeho spouštěcí příkaz

    # Enable fast-booting
    fastboot_enable="YES"
    fastboot_earlyrc="/etc/rc.d/moused /usr/local/etc/rc.d/pefs /usr/local/etc/rc.d/dbus /usr/local/etc/rc.d/hald /usr/local/etc/rc.d/gdm"
  • upraví se soubor /etc/rc.conf a zadá následující obsah:
    gdm_enable="NO"
    gnome_enable="NO"
  • restartuje se stroj běžným způsobem a přihlásí se běžný uživatel
  • vytvoří se nový soubor příkazem # ee $HOME/.xinitrc
  • vzhledem k tomu, že Slim sám o sobě neobsahuje žádné nastavení lokalizace, je nutné ho nastavit zde. Je také třeba nastavit klávesnici a start LXDE. Obsah souboru vypadá třeba takto:
    export LC_ALL=cs_CZ.UTF-8
    export LANGUAGE=cs_CZ.UTF-8
    export LANG=cs_CZ.UTF-8
    export PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin
    setxkbmap cz &
    exec startlxde
  • funkčnost je možné vyzkoušet spuštěním příkazu # startx. Pokud naběhne prostředí LXDE, je možné dál pokračovat v úpravách
  • nainstalují se balíčky
    slim-1.3.5
    slim-themes-1.0.1
  • znovu se upraví soubor /etc/rc.conf.pcbsd, který má nakonec tento obsah:
    # Enable fast-booting
    fastboot_enable="YES"
    fastboot_earlyrc="/etc/rc.d/moused /usr/local/etc/rc.d/pefs /usr/local/etc/rc.d/dbus /usr/local/etc/rc.d/hald /usr/local/etc/rc.d/slim"
  • znovu se upraví soubor /etc/rc.conf následovně:
    slim_enable="YES"
  • upraví se soubor /usr/local/etc/slim.conf např takto:
    # Activate numlock when slim starts. Valid values: on|off
    numlock             on
    
    # Available sessions (first one is the default).
    # The current chosen session name is replaced in the login_cmd
    # above, so your login command can handle different sessions.
    # see the xinitrc.sample file shipped with slim sources
    sessions            lxde
    
    # current theme, use comma separated list to specify a set to
    # randomly choose from
    current_theme       default,fbsd,lake,rainbow,rear-window,scotland-road,subway,wave,zenwalk
    Ostatní nastavení zůstávají defaultní.
  • vzhledem k tomu, že se numerická klávesnice startuje pomocí Slim, je možné upravit soubor /usr/home/vojtaj/.config/lxses­sion/LXDE/autostart a vypustit z něj původní řádek
    @numlockx
  • bootování stroje proběhne automaticky až do úvodní obrazovky Slim bez zásahu uživatele. Po přihlášení se spustí LXDE v příslušné lokalizaci a vše funguje jako předtím.
  • zajímavé je, že příkazy pro vypnutí a restart stroje z LXDE nevedou zpět do Slimu, ale dojde rovnou k požadované akci.
  • příkazy pod volbou Odhlásit se jsem nijak neupravoval a nechal je v defaultním nastavení. Fungují následovně: Odhlásit se vrátí uživatele do přihlašovací obrazovky Slim. Režim spánku stroj uspí. Po probuzení bohužel nefunguje myš. Příkaz Hibernate stroj bez varování vypne. Žádný z těchto příkazů nepoužívám a zkoušel jsem je jenom ze zvědavosti a pro účely článku. Proto jsem ani nezkoumal možnosti jejich nastavení a úplného zprovoznění.

Popsané nastavení používám již pár týdnů k plné spokojenosti a návrat ke GDM v dohledné době není na pořadu dne.

Poslední drobný problém, na který bych chtěl případné uživatele upozornit souvisí s aktualizací balíčků. Po zadání příkazu pkg update se objevilo chybové hlášení ve tvaru

pkg:sqlite:detabase disk image is malformed (pkgdb.c.1274)

Stalo se to i v některých jailsech, jenom číslo na konci hlášky bylo jiné. Řešení problému je poměrně jednoduché:

  • přihlásit se do nějakého správce souborů jako root
  • smazat celý obsah adresáře /var/db/pkg, kde byly tři soubory –
    local.sqlite
    repo.sqlite
    repo-packagesite.sqlite
  • spustit postupně příkazy
    # pc-updatemanager check
    # sudo pkg update
      # sudo pkg upgrade

Smazané soubory se obnoví v nové verzi a všechny příkazy pro aktualizace zase fungují bez problémů.

Tímto krátkým konstatováním bych ukončil aktuální a spíše negativní zkušenosti z několikaměsíčního denního provozu stroje s PC-BSD.Kromě dříve uvedeného zásadního problému s nenaběhnutím diskového systému (jak bylo uvedeno, nevím, proč k tomu došlo a po překabelování se již nic podobného neopakovalo) a problému se zadáváním údajů do formuláře GDM se jedná o drobnosti. Většinou stačilo projít komunitní blog a problém byl objasněn a vyřešen.

Po dlouholeté práci na několika linuxových distribucích musím jednoznačně konstatovat, že PC-BSD je velmi stabilní systém. Zásadní systémové změny se neodehrávají nijak divoce a nečekaně. Struktura a nastavení systému jsou poměrně jednoduché a po krátkém zaučení je pokročilejší uživatel schopen spoustu možností využít. Spojení systému se ZFS nabízí také množství možností. Já z nich sice využívám jen minimum (uspořádání disků do RAIDZ-2, scrubbing a snapshoty), ale i tak jsou určitě přínosem.

Za jednoznačný přínos pak považuji jednoduchou práci s jailsy, kam jsem přesunul prakticky všechny serverové a vývojové nástroje. Spouštím je tedy podle potřeby a když potřeba nejsou, neblokují zbytečně systémové zdroje. Také je velmi jednoduché jejich zálohování a v dohledné době se chystám vyzkoušet jejich přenos na jiný stroj s PC-BSD, i když zatím jenom virtuální.

Aktualizace pomocí rolling release sice občas přináší drobné komplikace, ale na druhou stranu umožní využívat základní sadu aplikací v poměrně aktuální verzi. Díky rozšíření balíčkovacího systému PKGNG už prakticky vůbec nepoužívám porty a už vůbec ne PBI.

CS24_early

Závěr bych si dovolil konstatovat, že podle mého názoru je PC-BSD vhodným systémem pro pokročilejšího uživatele, který má chuť se zpočátku věnovat průzkumu odlišností od toho, na co byl dříve zvyklý. Od mého dřívějšího Sabayonu těch odlišností zase nebylo tolik a nebyly nijak zásadní.Dovolil bych si dokonce tvrdit, že systém je vhodný pro toho BFU, kterému se o něj občas někdo zkušenější bude starat a na počátku mu zablokuje některé volby. Pak totiž i on ocení stabilitu systému a aktuální aplikace.

Seriál článků byl poměrně rozsáhlý a doufám, že alespoň někomu přinesl zajímavé a případně i nové informace o systému mimo linuxové distribuce.

Byl pro vás článek přínosný?

Autor článku