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.
Kevin Lin zkouší využívat chytré brýle Mentra při hraní na piano. Vytváří aplikaci AugmentedChords, pomocí které si do brýlí posílá notový zápis (YouTube). Uvnitř brýlí běží AugmentOS (GitHub), tj. open source operační systém pro chytré brýle.
Jarní konference EurOpen.cz 2025 proběhne 26. až 28. května v Brandýse nad Labem. Věnována je programovacím jazykům, vývoji softwaru a programovacím technikám.
Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma.
Před 25 lety zaplavil celý svět virus ILOVEYOU. Virus se šířil e-mailem, jenž nesl přílohu s názvem I Love You. Příjemci, zvědavému, kdo se do něj zamiloval, pak program spuštěný otevřením přílohy načetl z adresáře e-mailové adresy a na ně pak „milostný vzkaz“ poslal dál. Škody vznikaly jak zahlcením e-mailových serverů, tak i druhou činností viru, kterou bylo přemazání souborů uložených v napadeném počítači.
%files
O sekci %files
a vlastnostech souborů jsme si pověděli již v jednom z prvních dílů, ale nic není tak jednoduché, jak to napíši.
Sekci %files
, resp. její část, je možné generovat při kompilaci. Zapíšeme-li nějakým skriptem seznam souborů balíčku lobster (ve stejném formátu jako v sekci %files
samé) do lobster.files
, načteme ho pomocí -f
:
%files -f lobster.files
A soubory mohou mít řadu dalších, řidčeji využívaných přívlastků.
%exclude
Přívlastek %exclude
označuje soubor, který do daného rpm nepatří. Hodí se u vedlejších balíčků, kdy umožňuje do některého balíčku přidat všechny soubory v adresáři kromě jednoho, který patří do jiného balíčku.
%exclude %{_bindir}/lobster-server
%ghost
Přívlastek %ghost
označuje soubor, který se nemá do balíčku zahrnout, ačkoli do něj patří. Používá se pro soubory, jejichž obsah je nepodstatný, ale na jejich atributech záleží, tedy zejména logy a další generované soubory. Kromě toho ho rpmbuild
přidává nezdrojovým souborům a nepatchům v nezdrojových rpm (nosrc.rpm
).
%ghost %{fontdir}/fonts.dir
%config
Konfigurační soubory označuje přívlastek %config
. Konfigurační soubory vyžadují při aktualizaci zvláštní zacházení, protože se na rozdíl od ostatních běžně editují – a rpm s nimi také tak zachází. Snaží se přitom o dvě věci zároveň:
Srovnáme-li obsah souboru ze starého balíčku, obsah souboru z nového balíčku a jeho skutečný stav v systému, může nastat celkem pět možností. Dvě z nich jsou nezajímavé, jelikož je v nich skutečný obsah stejný jako ten, který by tam rpm rádo vidělo. Zbývají tři.
rpm
jednoduše nahradí soubor novým. Logika je taková, že se nahrazuje funkční výchozí konfigurace za aktualizovanou výchozí konfiguraci. Neexistuje verze, která by nebyla v novém či starém balíčku.rpm
v pasti. Neví, zda je lepší konfigurační soubor z nového balíčku, který sice jistě funguje s novou verzí programu, ale neobsahuje naše úpravy; nebo modifikovaný soubor, který ale nemusí s novou verzí vůbec fungovat. Řeší to tak, že změněný soubor uloží s koncovkou .rpmsave
a vypíše varování:warning: /etc/lobster/lobster.conf saved as /etc/lobster/lobster.conf.rpmsave
Toto vše platí pro soubory označené jen %config
; můžeme je ale také označit %config(noreplace)
:
%config(noreplace) /etc/lobster/lobster.conf
a rpm potom vždy ponechává editovaný soubor. Liší-li se od něj soubor z nového balíčku, přidá jej s koncovkou .rpmnew
a vypíše varování
warning: /etc/lobster/lobster.conf created as /etc/lobster/lobster.conf.rpmnew
Zacházení s konfiguračními soubory shrnuje tabulka:
Starý | Nový | Systém | Akce bez noreplace | Akce s noreplace |
A | A | A | nic | nic |
B | A | A | nic | nic |
A | B | A | aktualizuje A na B | aktualizuje A na B |
A | A | B | ponechá B | ponechá B |
A | B | C | zálohuje C s .rpmsave , aktualizuje na B |
ponechá C, přidá B s .rpmnew |
Při odstranění balíčku zazálohuje rpm soubory označené %config
s koncovkou .rpmsave
(byly-li oproti balíčku změněny).
Přívlastek %config
může mít kromě noreplace
i volbu
missingok
. Ta říká rpm, že se nemá divit, když soubor chybí. Stále však patří do balíčku a smaže se, když balíček odinstalujeme. Dříve se často používal pro soubory jako
%config(missingok) /etc/rc.d/rc2.d/S88lobster
i když dnes se totéž řeší spíš chckconfigem v instalačním skriptíku.
%verify
a %defverify
Vlastnosti, které má, resp. nemá kontrolovat rpm --verify
, určuje přívlastek %verify
. Výchozí nastavení můžeme provést pomocí %defverify
, který se má k %verify
stejně jako %defattr
k %attr
.
Argumentem mohou být jednotlivé vlastnosti, které rpm --verify
kontroluje: md5
, size
, link
, user
, group
, mtime
, mode
, rdev
, oddělené mezerami. Uvedeme-li jako první not
, říkáme tím, že se vyjmenované vlastnosti naopak kontrolovat nemají – %verify
se používá téměř výhradně takto v negaci. Přívlastek se vyskytuje velmi
často společně s %ghost
a %config
.
%ghost %verify(not md5 size mtime) %{fontdir}/fonts.cache*
Potřebujeme-li nastavit stejné atributy u řady souborů, můžeme si pro ně definovat makro:
%define dbattr %verify(not md5 size mtime) %ghost %config(missingok,noreplace)
%lang
Soubory lokalizace do nějakého jazyka se označují přívlastkem
%lang(locale)
, kde locale
je označení příslušného locale:
%lang(cs) %{_datadir}/%{vimdir}/lang/cs/* %lang(fr) %{_datadir}/%{vimdir}/lang/fr/*
Definicí makra %_install_langs
pak lze omezit jazyky, pro které se mají instalovat lokalizované soubory (při implicitní hodnotě all
se instalují soubory všech jazyků).
Ruční označování lokalizačních souborů je ovšem pěkná dřina, proto RPM obsahuje skript, který většinu práce udělá za nás. Nazývá se find-lang.sh
a umí vyhledat a označit MO soubory gettextu a soubory nápovědy Gnome a KDE (v případě KDE tedy spíš snad jednou bude umět). Voláme ho makrem %find_lang
s bázovým jménem souboru, do nějž seznam lokalizačních
souborů zapsat:
%install … %find_lang %{name} %files -f %{name}.lang …
%dev
Přívlastek %dev
označuje zařízení a má argumenty
%dev(typ, major, minor)
. Argument
typ
je b
pro bloková zařízení nebo c
pro znaková; hlavní a vedlejší číslo zařízení jsou čísla (desítková či šestnáctková). V době jádra 2.6 a udev už je prakticky k ničemu.
Přívlastky %readme
(soubory README) a %license
(licence) se příliš nepoužívají: rpm je nicméně pozná a umí vypsat. Přívlastek %pubkey
označuje veřejný klíč, a dokonce se používá, byť zcela výjimečně; %policy
má označovat SELinux policy na Fedoře, ale netuším, jak se správně používá. Přívlastky %spec
a %icon
existují jen při kompilaci RPM s -DWHY_NOT
…
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
rpm --verify perl
). Z --force stačí --replacefiles, ale výsledek je stejný. Můžeš zkusit, jak přesně v praxi funguje Obsoletes na soubory (které RPM čerstvě umí od 4.4), ale nevím, zda se jím dá balíčku ukrást soubor -- a i kdyby to šlo, tak to pak komplikuje další upgrady.
Ten problém s perlem se řešil ve fedoří konfernci; nevzpomínám si už, zda vymysleli nějaké lepší řešení.
Nejpřímočařejší cesta k výsledku asi je oprava a rebuild src.rpm perlu.