Raspberry Pi OS, oficiální operační systém pro Raspberry Pi, byl vydán v nové verzi 2025-05-06. Přehled novinek v příspěvku na blogu Raspberry Pi a poznámkách k vydání. Pravděpodobně se jedná o poslední verzi postavenou na Debianu 12 Bookworm. Následující verze by již měla být postavena na Debianu 13 Trixie.
Richard Stallman dnes v Liberci přednáší o svobodném softwaru a svobodě v digitální společnosti. Od 16:30 v aule budovy G na Technické univerzitě v Liberci. V anglickém jazyce s automaticky generovanými českými titulky. Vstup je zdarma i pro širokou veřejnost.
sudo-rs, tj. sudo a su přepsáné do programovacího jazyka Rust, nahradí v Ubuntu 25.10 klasické sudo. V plánu je také přechod od klasických coreutils k uutils coreutils napsaných v Rustu.
Fedora se stala oficiální distribucí WSL (Windows Subsystem for Linux).
Společnost IBM představila server IBM LinuxONE Emperor 5 poháněný procesorem IBM Telum II.
Byla vydána verze 4.0 multiplatformního integrovaného vývojového prostředí (IDE) pro rychlý vývoj aplikaci (RAD) ve Free Pascalu Lazarus (Wikipedie). Přehled novinek v poznámkách k vydání. Využíván je Free Pascal Compiler (FPC) 3.2.2.
Podpora Windows 10 končí 14. října 2025. Připravovaná kampaň Konec desítek (End of 10) může uživatelům pomoci s přechodem na Linux.
Již tuto středu proběhne 50. Virtuální Bastlírna, tedy dle římského číslování L. Bude L značit velikost, tedy více diskutujících než obvykle, či délku, neboť díky svátku lze diskutovat dlouho do noci? Bude i příští Virtuální Bastlírna virtuální nebo reálná? Nejen to se dozvíte, když dorazíte na diskuzní večer o elektronice, softwaru, ale technice obecně, který si můžete představit jako virtuální posezení u piva spojené s učenou
… více »Český statistický úřad rozšiřuje Statistický geoportál o Datový portál GIS s otevřenými geografickými daty. Ten umožňuje stahování datových sad podle potřeb uživatelů i jejich prohlížení v mapě a přináší nové možnosti v oblasti analýzy a využití statistických dat.
Systém FreeBSD umožňuje správu aplikačného softwaru v zásade dvomi spôsobmi. Prvý spôsob je inštalácia predkompilovaných balíčkov z FTP zdrojov, druhým je správa softwaru pomocou systému portov (v zásade je to do určitej miery automatizovaný preklad aplikácie zo zdrojového kódu). Každý zo spôsobov má svoje výhody aj nevýhody, v reálnej prevádzke je teda pre FreeBSD administrátora vynikajúcim riešením pri správe a udržiavaní softwaru kombinovať oba spôsoby. Oba spôsoby sú spolu previazané, na čo tiež v článku poukážem.
Tu je tento systém značne podobný balíčkovacím systémom na iných unixových systémoch. Spočíva v nainštalovaní predkompilovaného softwaru do systému, kde sú po stiahnutí komprimovaného archívu na disk stroja z neho vybalené binárky, dátové súbory a konfiguráky. Tieto sú nakopírované do patričných adresárov a niekedy (v prípade niektorých systémových programov) aj automaticky inicializované a spustené. Systém si udržuje závislosti (podobne ako u iných balíčkových systémov, napríklad u RPM), a tak pri požiadavke na inštaláciu softwaru sa stiahnu aj tie balíčky, od ktorých je požadovaný balík závislý, a bez ktorých nepobeží.
Výhody balíčkov sú zrejmé už zo samotného princípu tohto systému - aplikáciu možno stiahnuť a nainštalovať veľmi rýchlo, neprevádza sa nijaká kompilácia, stiahnu sa hotové binárky. To je veľké plus v prípade takých obrov medzi programami, ako OpenOffice.org, KDE, GIMP a podobné veľké aplikácie, u ktorých sa čas prekladu zo zdrojového kódu môže značne natiahnuť. Ďalšou výhodou môže byť aj to, že tento systém umožňuje v prípade staticky prilinkovaných knižníc aj spúšťať tie aplikácie, ku ktorým nemáme v systéme nainštalované patričné knižnice zodpovedajúcej verzie. Viete dobre, aké je problematické, keď sa na systéme nedarí skompilovať program napríklad preto, že na kompiláciu (nie na samotnú prevádzku) potrebujem knižnicu libXYZ vo verzii napr. 1.1.2, kdežto v systéme mám už 1.1.8 a tú 1.1.2 si nemôžem nasilu hodiť do systému, lebo si znefunkčním 10 ďalších aplikácií, ktoré sú od nej závislé a bez nej nebežia, alebo sú nestabilné. Stiahnutie hotového predkompilovaného balíčka s funkčnou aplikáciou je potom pre správcu hotová spása...
Nevýhody sú tiež zjavné. Môžeme zabudnúť na nejaké optimalizovanie kompilácie pre použitý HW a zapnutie špeciálnych funkcií danej aplikácie. Balíčky sú skompilované tak, aby podľa možnosti bežali na všetkom, a tak sú skompilované iba obecne pre danú platformu (i386, amd64 ...). Potom nemôžem využiť to, že mám trebárs Pentium 4, balíček bude ten istý, čo pre Celeron II a výhody môjho procesora nedokáže daná aplikácia využiť naplno. Takisto nie je vždy zaručené, že balíčky budú tie najnovšie. Veľakrát sú balíčky už trochu staršie a v aktuálnej verzii sa medzitým hodne vecí vylepšilo. A potom sú isté veci, na ktoré sa jednoducho už zo samotného princípu nedá balíčkovanie použiť. Typickým prípadom je binárka, kde sa proste nedá pripraviť nejaká obecná všade chodiaca verzia, lebo bezprostredne súvisí s aktuálnym jadrom a aktuálnymi verziami závislých aplikácií. Ako príklad uvediem ovladač pre grafické karty nVidia. Ten sa kompiluje presne pre danú verziu jadra a X.org.
Balíčky a ich závislosti sú udržiavané pomocou databázy pkgdb.
Táto databáza obsahuje prehľad o všetkých nainštalovaných aplikáciách a
zdieľaných balíčkoch. Nachádza sa v adresári /var/db/pkg
.
Databázu tvorí súbor pkg.db
a
adresárová štruktúra s podadresármi nazvanými podľa jednotlivých
balíkov, kde sú zapísané všetky údaje o inštalovaných balíkoch a
závislostiach.
Obr. 1 - Pohľad na adresár s databázou balíčkov:
Obsah databázy si môžeme vypísať pomocou príkazu
pkg_info
.
Obr. 2 - Okno s výpisom aktuálne nainštalovaných balíčkov:
Aktuálnu databázu balíkov si systém stiahne po zadaní
pkgdb -f
, do režimu manuálnych opráv sa dostaneme pomocou
príkazu pkgdb -F
Balíček si pridáme pomocou príkazu pkg_add
s nasledovnou
syntaxou:
pkg_add -r názov_balíka
čo spôsobí, že sa systém napojí na FTP zdroj balíčkov a stiahne si
balíček aj závislé balíčky, bez ktorých software nepôjde. Parameter
-r
tu značí, že má hľadať akýkoľvek balík s príbuzným názvom.
V opačnom prípade je nutné zadať presný názov balíka aj s číslom verzie. V
prípade, že verzia závislých balíčkov nebude zodpovedať požadovanej, ale
budú spätne kompatibilné, pri inštalácii sa zobrazí varování, ale aplikácia
pobeží. V prípade, že dostupné závislé balíčky nie sú inštalované v
systéme, alebo nie sú kompatibilné a zároveň nie sú aktuálne verzie
dostupné v danom zdroji balíčkov, k inštalácii nedôjde. V prípade, že máme
v systéme starú závislú komponentu a balík, ktorý inštalujeme, striktne
požaduje novú, systém nám odporučí najskôr túto komponentu upgradovať a až
potom nám povolí inštaláciu. Takisto inštalácia neprebehne, ak má náš
operačný systém inú verziu ako tá, pre ktorú bol balík skompilovaný
(napríklad balík je skompilovaný pre 5.4 RELEASE a my máme 5.4 STABLE), čo
si pred samotnou inštaláciou balíčkovací systém sám overí.
Tu by som sa ešte zmienil o dôležitej veci - ceste k FTP mirroru s
balíčkami. Táto je v systéme nadefinovaná ako premenná prostredia
PACKAGESITE a možno ju meniť pomocou setenv
. Toto využijete v
situácii, kde upgradujete systém zo zdrojového kódu, a tým pádom nám nebude
inštalácia balíčkov chodiť. Pri prvom probléme ma to trochu vydesilo,
systém mi písal hlášku, že nevie nájsť nijaký požadovaný balík, aj keď to
pred upgradom normálne chodilo, ale riešenie je jednoduché:
setenv PACKAGESITE \
ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5-stable/Latest/
čo nám zmení predvolenú cestu na FTP zdroj softwarových balíkov. Obdobný
postup sa dá uplatniť pri prechode na verziu 6-STABLE z 6-RELEASE. Pozor,
na konci cesty musí byť lomítko, ak ho nedáte, pkg_add
vám spojí predvolenú cestu s názvom balíka a pochopiteľne nijaký balík
nenájde!
Odinštalovanie je tiež veľmi jednoduché. Robí sa pomocou príkazu
pkg_delete -x názov_balíka
čo spôsobí okamžité odinštalovanie balíka a jeho vyradenie z databázy.
Prepínač -x
značí, že sa majú odinštalovať všetky balíky s
názvom obsahujúcim uvedený reťazec. Poznámka pre začiatočníkov - nemusím
snáď zdôrazňovať unixovú samozrejmosť, že akákoľvek inštalácia aj
odinštalácia sa dá robiť iba s právami roota.
Tu sa jedná, ako už bolo uvedené, o inštaláciu softwaru s prekladom zo
zdrojového kódu. Princíp je jednoduchý. V systéme sa nachádza adresár
/usr/ports
, kde sú uvedené jednotlivé kategórie portov. V
koreni adresára portov je súbor Index.db
- je to zoznam
portov. Viac napovie obrázok.
Obr. 3 - Strom portov
Každý adresár obsahuje podadresáre, kde sa nachádzajú adresáre samotných aplikácií. V adresároch sa nachádzajú iba popisy, pomocné súbory a samotný Makefile, teda súbor, ktorý riadi kompiláciu a inštaláciu portu.
Strom portov je vhodné udržovať v aktuálnom stave. Najjednoduchšie to
spravíme cez utilitu cvsup
. Túto utilitu pre príkazový riadok,
ak ju v systéme nemáme, si nainštalujeme týmto príkazom:
pkg_add -r cvsup-without-gui
Potom prevedieme tieto kroky:
cd /usr/share/examples/cvsup
cvsup ports-supfile
Spustený proces nám edituje strom portov, čiže vymazáva podadresáre zrušených portov, edituje obsah podadresárov aktualizovaných portov a pridáva podadresáre nových portov. Je to ďaleko elegantnejšie, ako si celý strom portov sťahovať z FTP. Takto sa prenesú iba rozdiely voči aktuálne udržovanému stromu portov (inkrementálna aktualizácia).
Keď máme strom portov aktuálny, môžeme pristúpiť k inštalácii. Uvediem typický príklad - inštaláciu Firefoxu z portu.
cd /usr/ports/www/firefox
make
make install
make clean
V prvom riadku sa prepnem do adresára príslušného portu, v druhom zadám
príkaz na kompiláciu make
. Začne sa spracovávať Makefile, čo
znamená, že sa prevedie táto postupnosť krokov - systém si do
/usr/ports/distfiles
stiahne aktuálne zdrojáky k danému
softwaru z FTP servera tvorcu aplikácie (práve preto je potrebné udržiavať
si strom portov aktuálny), aplikuje na ne patche a následne ich automaticky
skompiluje. V prípade, že aplikácia vyžaduje aj nejaké závislé komponenty a
v systéme sa nenachádzajú, rovnaký postup sa vykoná aj pre ne.
Patche sú vlastne nutné úpravy obecných zdrojových kódov potrebné na bezproblémové skompilovanie a beh na FreeBSD platforme, nakoľko stiahnuté zdrojáky sú v drvivej väčšine určené pre iný systém (obecný POSIX systém, Linux, Solaris, ...) a nerešpektujú určité drobné odlišnosti BSD voči iným Unixom, z ktorých sa však môže stať vážny problém pri stabilite a funkcionalite danej aplikácie.
Proces kompilácie sa riadi nastavením súboru
/etc/make.conf
. Teda ak mám tam zapnutú optimalizáciu na dané
CPU, bude pri kompilácii zohľadnená. Samozrejme sa dá vnútiť aj cez
parameter za príkazom make
. Kompilácia istý čas potrvá, závisí
od veľkosti aplikácie a výkonu nášho systému. V adresári portu sa vytvorí
pomocný adresár work
. Po ukončení kompilácie sa nám vráti
kurzor príkazového riadku a zadáme make install
. Tento
príkaz nám skompilovaný port nainštaluje do systému. Posledný príkaz
make clean
nám zmaže medzivýsledky po kompilácii, ktoré
nám iba zbytočne zaberajú diskový priestor. Uvedené príkazy môžeme vykonať
aj v jednom, zadaním make install clean
.
Tu by som ešte dodal malú poznámku - v niektorých zriedkavých prípadoch
sa môže stať, že nejaký software má ve výchozom nastavení zapnutú aj
kompiláciu nejakých vývojových možností, ktoré spomaľujú (debug) alebo môžu
ukončiť kompiláciu s chybami (napríklad podpora Samby v Mozille). Tie sa
dajú vypnúť dvoma spôsobmi. Buď zadám za príkazom make
parameter vypínajúci danú voľbu, alebo zadám make config
a v textovom okne si pohodlne vypnem danú problematickú funkciu. Nasledovný
make
už prebehne bez kompilovania danej časti.
Software, ktorý si skompilujem z portu, mi zároveň automaticky
pribudne aj do zoznamu balíkov v pkgdb
. Teda ak si skompilujem
napríklad Firefox z portu, po zadaní príkazu pkg_info
sa mi
medzi vypísanými balíkmi objaví aj on. To znamená, že systém s ním ďalej
narába ako s bežným balíkom, môžem ho vymazať ako ktorýkoľvek iný balík,
pozná svoje závislé balíky a iné balíky závislé na ňom ho tiež poznajú.
Všetok spravovaný software sa teda javí ako jeden celok, čo sa týka jeho evidencie v systéme aj udržiavania jeho závislostí, a to bez ohľadu na to, či bol inštalovaný kompiláciou zo zdrojákov, alebo stiahnutý ako už hotová predkompilovaná binárka. Táto centralizovaná správa prinášajúca prehľad a poriadok v inštalovaných aplikáciách je veľkou výhodou FreeBSD. Pre správu softwaru by bolo iste frustrujúce a pri veľkom počte aplikácií aj nepoužiteľné, keby sa časť aplikačných programov spravovala v jednom a časť v druhom systéme správy softwaru. Našťastie vďaka premyslenému systému správy aplikácií nám toto vo FreeBSD nehrozí.
Túto prepojenosť oboch systémov možno s výhodou použiť v praxi, keď veci, ktoré z nejakého dôvodu (enormný čas kompilácie, vo veľmi zriedkavých prípadoch problém pri kompilácii, ...) nechcem kompilovať, si iba stiahnem ako balíček a zvyšok si skompilujem na mieru svojmu systému cez porty. S výhodou to neskôr možno použiť pri aktualizácii aplikácií, kedy sa môžu upgradovať všetky jednotne, bez ohľadu na to, akým spôsobom som ich do systému nainštaloval.
Všetky aplikácie sa neustále priebežne menia. Niekedy z dôvodov pridania novej funcionality, často z dôvodu vylepšenia stability, niekedy dokonca z dôvodu odstránenia vážnych bezpečnostných problémov. Preto by mal správca firemného systému, ktorý to myslí vážne, aspoň raz za čas aktualizovať aplikačný software. Našťastie to nie je nič zložité ani obtiažne, FreeBSD má pokročilý systém na pohodlné riešenie aktualizácie nainštalovaných aplikácií.
Tento systém je postavený na kombinácii databázy balíčkov a systému portov. V zásade sa jedná o do značnej miery automatizovaný proces, kde sa z databázy zistia nainštalované balíčky, tie sa potom overia, či sú aktuálne, a ak nie, stiahne sa do systému zdrojový kód aktuálnej verzie softwaru a z neho sa nový software skompiluje a nainštaluje sa do systému. V prípade, že kompilácia nedopadne úspešne, sa do systému vráti stará verzia aplikácie.
Ako prvý krok je treba si zaktualizovať strom portov cez
cvsup
a databázu portov cez portsdb -Uu
,
keďže aktuálne čísla verzií sa berú z neho. Je to logické, keďže porty
obsahujú vždy najaktuálnejšie zdrojáky, zatiaľčo u pripravených bináriek
to už tak nemusí byť.
Samotná aktualizácia je jednoduchá, používa sa na ňu príkaz
portupgrade
. Ak chcem aktualizovať iba jednu aplikáciu,
napríklad wine, zadám príkaz
portupgrade wine
ktorý vykoná nasledovné činnosti - overí si, či je verzia v databáze balíkov staršia ako tá v portoch. Ak áno, stiahne sa zdroják, opatchuje sa, skompiluje sa nová verzia vrátane závislých komponent, stará verzia sa odloží a nová sa otestuje. Pokiaľ je v poriadku, nainštaluje sa, pokiaľ nie, vráti sa pôvodná verzia zo zálohy. Toto všetko je po príkaze prevedené automaticky.
Ak chcem aktualizovať všetky aplikácie, použijem tento postup:
cd /usr/ports
portupgrade -a
Tento príkaz môže niekedy robiť problém, keď sa nejaká aplikácia odvoláva na závislosť na inom (ešte neupgradovanom) balíku, preto je lepšie použiť príkaz
portupgrade -arR
kde si portupgrade
pri kompilácii najskôr zistí závislosti
kompilácie (build dependencies, teda zdieľané komponenty, bez ktorých
sa aplikácia neskompiluje, zapína sa to cez prepínač -R
) a
závislosti pre beh (to sú zas komponenty, bez ktorých sa program korektne
nerozbehne, zapína sa to cez prepínač -r
). V prípade, že sa
objavia jedny alebo druhé závislé programové komponenty, upgradujú sa
prednostne najprv ony, až potom program samotný.
V prípade, že nechcem naraz kompilovať všetko, ale chcem stiahnuť všetky potrebné zdrojáky včetne zdrojákov závislých komponent (čo môže trvať pri slabšej linke hodne dlho), urobím to príkazom
portupgrade -aFrR
ktorý stiahne zdrojáky do /usr/ports/distfiles
(-F
značí Fetch). Dá sa to použiť napríklad tak, že večer a
cez noc si nechám takto pripraviť zdrojáky a ráno začnem upgradovať. Pri
zadaní príkazu portupgrade -arR
sa potom systém
nezdržuje sťahovaním a rovno berie zdrojáky z distfiles, čo proces
upgradovania aplikácií dosť urýchli.
Pre paranoidné, nervózne a nedôverčivé týpky tu ešte máme prepínač
-n
, ktorý umožní urobiť "simuláciu" upgradu. To znamená, že
iba vypíše, čo sa počas upgradu urobí, ale na aplikáciu sa nesiahne a
všetko ostane, ako bolo.
Viac o správe softwaru nájdete vo FreeBSD Handbooku a v manuálových
stránkach portupgrade
, ale myslím si, že toto by malo v praxi
vo väčšine prípadov bohato stačiť na celkom solídnu správu aplikácií.
Zatiaľ sa majte a nech vám vaše systémy idú!
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
portinstall -vPpr
sice jaks takz funguje, ale cele je to nedokonale!
Napr. vytvorim balik samba s nedefaultni volbou a na jinem stroji chci instalovat sambu pres portinstall
, ale mam v pkgtools.conf
jinou volbu a hle..., nejde to rozlisit!!!
Proste by to chtelo doladit, napr. na OpenBSD se takove baliky rozlisuji i nazvem, takze mame treba mplayer-no_gui atd.
jirib
Ha...
...ty screenshoty tam byly k cemu? Udelat screenshot grafickeho ls -F
, no klobouk dolu, uzasne!
Celkove jsem ten clanek proletl, ale je to porad to stejne dokola. Mnozi uzivatele FreeBSD uz ani nepouzivaji security updaty ze zdrojaku a taky casto ani ne cvsup ports-supfile
.
Proste zklamani, nic noveho, nic uzasneho a ty screenshoty byly fakt ubohe.
Pritom nejake GUI je, sic ho nepouzivam, ani KDE, tim bych si *BSD neprznil.
Kombo pro OpenBSD & FreeBSD
http://www.bytelabs.org/devel.html
http://www.bytelabs.org/images/portbrowser3.jpg
Nebo Freeport, bohuzel bez screenshotu:
http://freeport.sf.net
Ale jinak samo, ze BSD rulez a L*nux sux.
jirib
cd /usr/share/examples/cvsup cvsup ports-supfile-neupraveny ports-supfile je k nicemu, je to zbytecny, kdyz existuje cesky mirror, zde je priklad upraveneho ports-supfile:
*default host=cvsup.freebsd.cz *default base=/usr *default prefix=/usr *default release=cvs tag=. *default delete use-rel-suffix *default compress ports-alldale po tomto prikazu by melo nasledovat
cd /usr/ports && make fetchindex
cd /usr/ports/www/firefox make make install make clean- todle je zbytecne, staci
make install clean
+ pripadne volby uvedene v Makefile
a dale mozna by nebylo spatne uvest priklad upraveneho souboru make.conf
portupgrade -P --use-packages Use packages instead of ports whenever available. portupgrade searches the local directories listed in PKG_PATH for each package to install or upgrade the current installation with, and if none is found, pkg_fetch(1) is invoked to fetch one from a remote site. If it doesn't work either, the port is used. -PP --use-packages-only Never use the port even if a package is not avail- able either locally or remotely, although you still have to keep your ports tree up-to-date so that portupgrade can check out what the latest version of each port is.