Bylo oznámeno vydání Fedora Linuxu 43. Ve finální verzi vychází šest oficiálních edic: Fedora Workstation a Fedora KDE Plasma Desktop pro desktopové, Fedora Server pro serverové, Fedora IoT pro internet věcí, Fedora Cloud pro cloudové nasazení a Fedora CoreOS pro ty, kteří preferují neměnné systémy. Vedle nich jsou k dispozici také další atomické desktopy, spiny a laby. Podrobný přehled novinek v samostatných článcích na stránkách Fedora Magazinu: Fedora Workstation, Fedora KDE Plasma Desktop, Fedora Silverblue a Fedora Atomic Desktops.
Elon Musk oznámil (𝕏) spuštění internetové encyklopedie Grokipedia (Wikipedia). Zatím ve verzi 0.1. Verze 1.0 prý bude 10x lepší, ale i ve verzi 0.1 je podle Elona Muska již lepší než Wikipedia.
PSF (Python Software Foundation) po mnoha měsících práce získala grant ve výši 1,5 milionu dolarů od americké vládní NSF (National Science Foundation) v rámci programu "Bezpečnost, ochrana a soukromí open source ekosystémů" na zvýšení bezpečnosti Pythonu a PyPI. PSF ale nesouhlasí s předloženou podmínkou grantu, že během trvání finanční podpory nebude žádným způsobem podporovat diverzitu, rovnost a inkluzi (DEI). PSF má diverzitu přímo ve svém poslání (Mission) a proto grant odmítla.
Balík nástrojů Rust Coreutils / uutils coreutils, tj. nástrojů z GNU Coreutils napsaných v programovacím jazyce Rust, byl vydán ve verzi 0.3.0. Z 634 testů kompatibility Rust Coreutils s GNU Coreutils bylo úspěšných 532, tj. 83,91 %. V Ubuntu 25.10 se již používá Rust Coreutils místo GNU Coreutils, což může přinášet problémy, viz například nefunkční automatická aktualizace.
Od 3. listopadu 2025 budou muset nová rozšíření Firefoxu specifikovat, zda shromažďují nebo sdílejí osobní údaje. Po všech rozšířeních to bude vyžadováno někdy v první polovině roku 2026. Tyto informace se zobrazí uživateli, když začne instalovat rozšíření, spolu s veškerými oprávněními, která rozšíření požaduje.
Jste nuceni pracovat s Linuxem? Chybí vám pohodlí, které vám poskytoval Microsoft, když vás špehoval a sledoval všechno, co děláte? Nebojte se. Recall for Linux vám vrátí všechny skvělé funkce Windows Recall, které vám chyběly.
Společnost Fre(i)e Software oznámila, že má budget na práci na Debianu pro tablety s cílem jeho vyžívání pro vzdělávací účely. Jako uživatelské prostředí bude použito Lomiri.
Proběhla hackerská soutěž Pwn2Own Ireland 2025. Celkově bylo vyplaceno 1 024 750 dolarů za 73 unikátních zranitelností nultého dne (0-day). Vítězný Summoning Team si odnesl 187 500 dolarů. Shrnutí po jednotlivých dnech na blogu Zero Day Initiative (1. den, 2. den a 3. den) a na YouTube.
Byl publikován říjnový přehled dění a novinek z vývoje Asahi Linuxu, tj. Linuxu pro Apple Silicon. Pracuje se na podpoře M3. Zanedlouho vyjde Fedora Asahi Remix 43. Vývojáře lze podpořit na Open Collective a GitHub Sponsors.
Iniciativa Open Device Partnership (ODP) nedávno představila projekt Patina. Jedná se o implementaci UEFI firmwaru v Rustu. Vývoj probíhá na GitHubu. Zdrojové kódy jsou k dispozici pod licencí Apache 2.0. Nejnovější verze Patiny je 13.0.0.
Balíčkovací systémy jsou jistě tématem, které hodně hýbe světem GNU/Linuxu. Jedni je vynášejí, jiní zatracují. Co vlastně balíčkovací systémy přináší ?
První bod je jasný. Snadná instalace programů. I když pojem "snadná" je velmi
relativní, sám dobře vzpomínám na hodiny strávené na rpmfindu hledáním závislostí.
Závislosti jsou vůbec jednou z nejvíce kritizovaních vlastností balíčkovacích systémů.
Jenže narozdíl od skutečného světa mohou být tyto závislosti velmi užitečné.
Protože kdyby balíčkovací systém neřešil závislosti, nainstalovali byste program
a zjistili, že nejde. Chybí libxyzblbost.so.4. Ale kde sehnat libxyzblbost
ve správné verzi ? Bez balíčkovacích systémů vám zbývá google, najít správnou verzi
projektu, zkompilovat, případně nainstalovat a zjistit, že nefunguje, protože
se nesnese libnesmysl.so.5 verze 1.14.3. Balíčkovací systém alespoň ví, co
přesně potřebujete — který balíček. Ale ani tohle řešení není zcela ideální.
Když najdete a stáhnete potřebné balíčky (což je o něco jednodušší díky službám
typu rpmfind), zjistíte, že vyžadují další balíčky, a ty mají další závislosti.
Tomuto jevu se říká dependency hell a je často kritizován uživateli OS, který
se nejmenuje. Jenže zapomínají na obrovské výhody tohoto systému. Nemusíme
nic psát dvakrát. V nejmenovaném OS si každý program řeší všechno sám za sebe,
vznikají složité nesourodé balasty bez návaznosti na okolní prostředí. Ve
světě GNU/Linuxu je to jinak. Vývojáři se snaží o maximální využití existujícího
kódu a doboru spolupráci programů. A od tohu zde máme systém závislostí. Pravda,
instalece programů tímto způsobem nebyla nejjednodušší a dalo se tím strávit nějakých pár
hodin.
Ale samozřejmě vývoj jde kupředu a objevuje se nový trend — repozitáře. Ty zdánlivě řeší mnoho nevýhod stávajícího systému. Nemusíte hledat balíčky — chcete firefox ? Napište impkg install firefox a máte. Nemusíte řešit závislosti, balíčkovací systém je natolik inteligentní, že je všechny v repozitářích vyhledá a automaticky stáhne a nainstaluje (s vaším souhlasem). Je to výrazný pokrok oproti předchozí variantě, ale má jeden velký nedostatek. Co když se daný balíček nenachází v repozitářích vaší distribuce ani jiných kompatibilních repozitářích ? Většina balíčkovacích systémů založených na repozitářích nabízí i klasickou variantu — instalaci balíčků běžným způsobem ze souboru. Jenže na takovouto instalaci se zase většinou nevztahují výhody repozitářů a automatické řešení závislostí. Závislosti si proto musíte nainstalovat sami — většinou z repozitářů, což je celkem jednoduché, ale přesto je nepochopitelné, proč tato činnost často není balíčkovacím systémem vykonána automaticky. Ale závislosti, které nenajdeme v repozitářích, musíme sehnat a nainstalovat klasickým způsobem a opět se vracíme do raných dob rpm.
Jako taková menší odbočka se v této době začaly objevovat různé "nebalíčkové" systémy instalace, spíše podobné instalátorům v OS, který nesmíme jmenovat. Tyto nástroje často neřeší závislosti vůbec — spoléhají na určitou základní množinu knihoven, která musí být na cílovém systému přítomna (glibc, gtk+, ...) a zbytek je přibalen. Zde je zcela evidentní, že se nejedná o moc inteligentní řešení, o čemž svědčí i jeho původ.
Další změnou na poli balíčkových systémů byly systémy využívající balíčky ze zdrojového kódu. Tyto systémy kombinují většinu (ne)výhod balíčkovacích systémů s většinou (ne)výhod kompilace programů. Výrazně se zvyšuje čas potřebný k instalaci balíčků, zároveň se ale zvyšuje rychlost a přizpůsobitelnost programů, což ocení převážně pokročilí uživatelé. Ovšem i tyto nástroje kopírují klasické rysy balíčkovacích systémů, ať už jde o závislosti nebo repozitáře, a objevují se stejné problémy.
Proto rozumným krokem ve vývoji balíčkovacích systémů je sjednocení repository a non-repository balíčků. Jednou z mnoha myšlenek je identifikace balíčků pomocí URL, která tak vlastně vytváří z celého internetu jeden velký repozitář. Instalace je poté pohodlná i u programů, které nejsou součástí distribuce, prostě napíšete impkg install http://program.example.org/program-1.0. Ovšem zde je problém nejednoznačnosti. Jak mám balíčkovací systém poznat, že http://nesmysl.com/libgtk-2.6 a http://packages.imdistro.org/pkg/gtk2-2.6 jsou balíčky stejné knihovny ? Některé programy si jako závislost mohou vybrat první URL, jiné druhou. Systém potom nainstaluje oba (zdánlivě rozdílné) balíčky a vzniknou konflikty. V podstatě ať přemýšlíte nad otázkou správného řešení balíčků jakkoliv, ideální řešení neexistuje. Ale můžeme se mu libovolně přibližovat. Proto další rozšíření předchozího nápadu zahrnuje jednoznačné názvy balíčků. Tyto názvy by se měly vytvářet podle jednotných pravidel, ideálně po dohodě s autorem programu, aby byly skutečně jednotné. Potom je jedno, jestli instalujete http://gtk.org/gtk2/2.6 nebo http://impkg.nesmysly.com/gkt2-ultimate/gtk2/2.6-u. Systém rozliší stejný název a vybere nejvíc vyhovující verzi. Zároveň si sebou distribuce může nést připravený seznam vzorů URL, kde se dají hledat balíčky přímo podle názvu. Takže v /etc/impkg.conf bude např. http://packages.imaginarninesmysl.net/ a při požadavku impkg install program se vybere http://packages.imaginarninesmysl.net/program, pokud existuje. Pokud ne, zkusí další položku v seznamu atd.
I toto řešení má značnou nevýhodu v neexistenci seznamu balíčků, kde by si uživatel neznalý konkrétního názvu mohl vybrat, co hledá. To ale není příliš velký problém, stačí přidat katalog balíčků, který si nese popisy balíčků spolu s jejich URL. Ten by bylo možné vytvářet automaticky se zadáním URL zdrojů, které by obsahovaly potřebné metainformace.
Takže finální podoba tohoto návrhu je (nemám tušení, zda něco podobného někde existuje, či nikoliv; veškerá podobnost se skutečnými implementacemi je čistě náhodná): balíčky identifikujete podle jednoznačného názvu a podle URL, která také odpovídá fyzickému umístění balíčku. URL může vypadat jako http://server/cesta/název nebo http://server/cesta/název/verze pro instalaci kontkrétní verze. V adresáři /cesta/název/verze na serveru pak leží balíček verinfo s informacemi o balíčku, popisem, definicí závislostí, atd. Např:
#IS:text.config.impkg-verinfo
#impkg package file for package gtkBlbost
[Package]
pkgname=blbost
version=0.1
[Files]
data=http://server/data/blbost-0.1.tar.bz2
configfiles=/etc/blbost.conf /etc/.blbostrc #nebodou mazány ani přepisovány
scripts=preinstall postremove #seznam skriptů z dataarchivu (z adresáře např. .scripts),
#které jsou spouštěny při daných operacích (instalace, odstranění, update, ...)
[Locations]
#nutno uvést lokace všech vyžadovaných balíčků pro případ, že systém žádné implicitní nemá
#ale správce balíčků ma plné právo použít jiné lokace dle vlastního či uživatelova uvážení
gtk2=http://packages.impkg.org/gtk2
blbost-extras=http://server/cesta/blbost-extras
#nesmysl není definován, protože je vyžadována pouze jeho nepřítomnost
[Dependencies]
require gtk2 >=2.4
recommend gtk2 >=2.6
suggest blbost-extras =0.1
require !nesmysl #nesnese se s konkurenčním programem
[Changelog]
...
a v nadřazeném adresáři soubor pkginfo se souhrným obsahem, např.
#IS:text.conf.impkg-info [Package] pkgname=blbost url=http://server/cesta/blbost [About] #informace pro katalog category=misc #nezařaditelné name=gtkBlbost desc=Absolutní blbost [Versions] all=0.1 0.2 0.3b latest=0.3b stable=0.1 testing=0.2 devel=0.3bTakovýto systém by mohl fungovat jak pro kompilované balíčky ala Gentoo, tak pro binární. To ale pro tuto chvíli není podstatné. Takže každý balíček by měl podobné definice a soubory ke stažení. Vlastní balíčkovací systém také musí mít jednoduchou konfiguraci, např. /etc/impkg.conf:
#impkg configuration file [Prefs] preferred=devel #stable, testing, devel, cvs, ... [Locations] gtk2=http://gtk.impkg.org/gtk2 [Repositories] #url "repozitářů" ve kterých zkouší hledat balíčky http://packages.impkg.org http://packages.imdistro.org sftp://customer1453:heslo@store.impkg.comPotom by bylo možné instalovat klasickým způsobem:
impkg install http://server/cesta/blbost
impkg install http://server/cesta/blbost/1.0
impkg install http://server/cesta/blbost 1.0
impkg install http://server/cesta/blbost testing
impkg install blbost #za předpokladu, že je
impkg install blbost 1.0 #v některém z "repozitářů",
#tedy implicitních vzorů URL
Odstraňování by bylo ještě jednodušší prostě impkg remove blbost,
potom samozřejmě aktualizace typu impkg update blbost nebo rovnou
impkg system-update. Ovšem dalším faktem je, že spousta současných repository-based
správců balíčku opomíjí uživatele nedisponující připojením k internetu, přesněji disponující, ale
na jiném počítači. Ti se musí spokojit s klasickou zdlouhavou metodou. Přitom řešení je tak jednoduché.
Vyexportovat informace o nastavení balíčkovacího systému a nasinstalovaných balíčcích do jednoho souboru,
ten přenést na libovolném médiu na počítač s internetem, stáhnout vše potřebné do speciálního archivu,
který se opět importuje na cílovém počítači. Např. impkg export >/media/usbdisk/my.ipe,
a na druhém počítači se použije jednoduchá utilitka imdl, která nevyžaduje ani instalaci (pokud
v systému není přítomen impkg). Nejdříve se připraví a otevře cílový archiv, např. imdl open
/media/sdb1/my.ipe /media/sdb1/programy.ipi (první soubor jsou vyexportované informace o balíčcích
a druhý je název archivu, do kterého se budou ukládat stažené programy). Poté je možno používat imdl
stejným způsobem jako impkg, např imdl install blbost. Nakonec je třeba ukončit práci s
archivem, např imdl close. Archiv lze potom naimportovat na původním počítači, např.
impkg import /media/usbdisk/programy.ipi. Je to rozhodně o něco jednodušší než ruční stahování
balíčků...
V předchozím odstavci jsem jen tak zhruba nastínil, jak bych si představoval
implementaci dobrého balíčkovacího systému. Přemýšlel jsem o tom docela dlouho,
a žádné lepší řešení mě nenapadlo. Pokud máte nějaké rozumné nápady, můžete se
o ně podělit s ostatními v komentářích. Popsané kategorie balíčkovacích systémů
byly brány zcela obecně, avšak většina z nich doopravdy existuje minimálně v jednom
exempláři. Já jsem zatím víceméně spokojeným uživatelem gentoo, ale instalace čehokoliv
mimo repozitáře je hrozná. PORTDIR_OVERLAY už mi leze krkem a zdá
se mi, že k nainstalování takovéhoto balíčku je třeba až příliš mnoho úkonů,
nemluvě o udržování programu aktuálního. Jisté řešení se pokouší nabídnout layman,
ale stále jsou nejčastěji šířeny samotné ebuildy. impkg v tomto textu označuje
imaginární balíčkovací systém, pod kterým si můžete představit cokoliv. Nemám čas
ani chuť nastíněné myšlenky implementovat a nechat vzniknout tisícprvní balíčkovací systém,
už takhle je jich dost. Berte to jen jako námět k zamyšlení nad stávající implementací,
třeba to někoho inspiruje...
Tiskni
Sdílej:
. A toto nikdo jiny nez spravci hlavnich distribuci neporesi. Proto me prijdou vsechny tyhle system jako autopackage (ten zvlast) jako hnus^2
Také mi ten příklad připoměl PGFBUILD. Navíc spoustu zmíněných nevýhod balíčkovací systém Archu nemá.
ln -s /opt/program/share/program /usr/share/program. Kouzlo jednoduchosti...
Naopak musim rict ze je lepsi mit konfiguraky v /etc a nebo treba ikonky jsou docela pohromade, kdyz clovek neco hleda, libi se mi to tak jak to je
Navic mas vsechny binarky pohromade a muzes se podivat co vsechno v systemu mas.
Pokud nějaký program při make install přepíše systémové binárky, tak je jeho autor nebetyčné čuně.
hodně velkým písmem, ať to nikdo nezkouší instalovat příkazem make installAND
Balíčkovací systém by neměl dopustit, aby si dva balíčky přepsaly binárky nebo jakýkoli jiný soubor
make install asi nebude součáští nějakého balíčkovacího systému. :)
A myslím si, že by nebylo od věci mít možnost takový přepis povolit, pokud to explicitně balíkář povolí, zajisté po zralé úvaze. A myslím si, že se tak děje běžně, ale jen za předpokladu, že soubor nebyl změněn. Tedy pokud nainstaluješ apache z balíku a hned poté (ještě než upravíš konfiguráky) nainstaluješ php, tak si ten balík php upraví konfigurák apache, pokud dále nainstaluješ mysql a ještě si neupravil php.ini tak si to IMHO opět povolí dynamický modul pro spolupráci mysql a php.
jak nainstalovat program tenaten do adresáře tohoatohoTo je jednoduché:
./configure --prefix=/home/ja/mujvlastniadresar - a nic mimo nepocuchám. A žádné řeči o kompilaci, pokud vymýšlím kraviny, dostanu zákonitě kravskou odpověď.
Bez kompilování.
Proč by si běžný uživatel nemohl nainstalovat program? Běžný uživatel domácího desktopového PC si sám běžně instaluje operační systém a programy. Na tom není nic nenormálního. Každý nepotřebuje mít doma administrátora, aby mu to udělal.Odpověď se netýkala instalace samotné, ale umístění instalovaných souborů. Ale poslední větou jste si odpověděl sám: Právě že každý nemusí mít doma administrátora, aby mu určoval, kam který soubor má přijít, že... Takže to prostě nechám na balíčkovacím systému, a když chci vyvádět psí kusy, tak si je vyvádím pomocí prefixu při kompilaci
C:\Program Files, v horším případě C:\PROGRA~1, a basta fidli.