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.
Byla vydána nová major verze 5.0.0 svobodného multiplatformního nástroje BleachBit (GitHub, Wikipedie) určeného především k efektivnímu čištění disku od nepotřebných souborů.
rpm
. A zkušenosti
z řady dalších oblastí, jež se jako nezbytné předpoklady ještě časem
ukáží.Obsah seriálu bude následující (jak budou vycházet jednotlivé díly, budou se jednotlivé položky obsahu proměňovat na hyperlinky):
%changelog
%setup
%files
Tento díl obsahuje především obecné plky a jeho smyslem je, aby příznivci konkurenčních balíčkovacích systémů a filosofických směrů vyčerpali síly v nezbytném flamewaru, když ještě o nic nejde. V dalším díle se naučíte zkompilovat cizí balíčky, v následujícím snad i vlastní, a ve zbylém tuctu dílů se dozvíte věci, o nichž ještě netušíte, že je chcete znát.
Na několika místech se zmiňují vlastnosti RPM 4.4, který v době psaní toho úvodu ještě není v žádné „velké“ distribuci a nejblíže je asi ve Fedora Core 4. Mělo by u nich vždy být poznamenáno, že se ve starších verzích nevyskytují.
rpm
rpm
je program
rpm(8).architektura.rpm
, kde architektura označuje
architekturu, pro niž byl balíček zkompilován – např.
i386
, x86_64
, ppc
a pod.
Zvláštní hodnota noarch
označuje rpm obsahující jen skripty
či data nezávislá na platformě..src.rpm
, obsahuje zdrojový kód
a další věci potřebné k výrobě binárního rpm. Budu mu říkat
zdrojový balíček. Nainstalujeme-li ho omylem namísto binárního rpm, můžeme
si užít spoustu legrace, než to zjistíme. Instalace proběhne
v pořádku, ale žádný program se v systému neobjeví,
rpm -q
balíček nevypíše a rpm -e
neodstraní. Zoufale ho instalujeme znovu a znovu, a pokaždé je
to stejné: žádný konflikt, žádný výsledek. Že se v systému neobjevil
program, je snadno vysvětlitelné – nainstaloval se jen jeho
zdrojový kód. Proč se ale rpm tváří, že o balíčku vůbec neví? Protože
o něm opravdu neví – obsah zdrojových balíčků se neeviduje
z řady praktických důvodů. Jeden je, že soubory vytvářené, používané
a přepisované při překladu nemá smysl evidovat (leda snad kdyby
všechno podporovalo VPATH build). Další uvidíme níže. Když zdrojový
balíček nainstalujeme znovu, prostě přepíšeme soubory čerstvými.gcc.spec
. Obsahuje jednak informace o balíčku
(metadata) – např. jméno, verzi, licenci, URL domovské
stránky – a jednak postup, jak ho vyrobit. Psaním spec
souborů budeme trávit většinu tohoto seriálu.Vytváření balíčků probíhá ve všech systémech v podstatě stejně: podle nějakého receptu se rozbalí zdrojový kód, přeloží, program se nainstaluje a výsledek zapakuje. Jako každý takový systém má i RPM určité vlastnosti či myšlenky, kterými se od ostatních odlišuje, nebo je zkrátka dobré o nich vědět.
RPM není balíčkovací systém jediné linuxové distribuce, jímž se snaží vymezit oproti všem ostatním distribucím, není dokonce omezen ani na jediný operační systém. Byl portován například na Solaris, AIX, IRIX, HP-UX, FreeBSD, OpenBSD, AmigaOS či Darwina, byť se na nich používá v různé míře. Podmnožina RPM je také standardizována LSB (Linux Standards Base), i když zrovna tato standardizace patří mezi ty kontroverzní.
RPM je starý a ošklivý. Některé vlastnosti jsou viditelně dolepené, ježto v devadesátých letech asi nikdo netušil, že by je někdo mohl potřebovat. Jiné měly raději v devadesátých letech i zůstat, ale jsou stále podporovány. O temná zákoutí není nouze.
Ne, čistotu zdrojového kódu RPM tím opravdu nemyslím.
Reprodukovatelný postup kompilace je hlavní cíl a produkt balení.
RPM proto zásadně používá a do src.rpm
balí čisté
zdrojové kódy (pristine sources), tj. přímo ty, které vydal autor programu
(nebo mu v některých případech spíš odpadly od pracek). Je-li třeba
něco upravit, přejmenovat, smazat, doplnit, nebo dokonce vytvořit jedno
rpm z několika tarových koulí, zapíše se postup, jak tyto změny
provést, do spec souboru. Tím se liší od např. debu, jehož
.orig
může mít k původní tarové kouli daleko.
Je pravda, že chceme-li podvádět a podstrkávat mu upravené
zdrojové kódy, nedokáže nám v tom RPM zabránit – ale to už
pak můžeme rovnou používat checkinstall
.
RPM je celkově poměrně jednoduchý (ačkoli se vás zbytek tohoto seriálu
bude pokoušet přesvědčit o opaku) a kompilace balíčku je
obzvlášť přímočará – nejenže src.rpm
zkompilujeme
jedním jednoduchým příkazem, ale zabalíme-li spec soubor do tarové koule,
můžeme stejně jednoduše vyrábět binární rpm přímo z ní.
Všechny operace s rpm
mají být skriptovatelné,
a tedy neinteraktivní. Ačkoli tak rpm balíčky mohou obsahovat skripty
spouštěné při instalaci či odstranění, nejsou interaktivní skripty, které
kupříkladu otravují se souhlasem s licencí či kladou konfigurační
dotazy, podporovány. Ba dokonce se jim rpm
brání, byť poněkud
chabě, neboť standardní vstup striptíků přesměrovává
z /dev/null
.
Program se při balení neinstaluje do skutečného cílového adresáře, tedy
do systému, ale do dočasného adresáře, takže k balení není zapotřebí
být root (mimo jiné). To je dnes sice už běžná technika, má ovšem určité
důsledky pro svatou trojici ./configure
, make
,
make install
, jejichž pochopení už tak běžné není.
Je totiž zapotřebí program, který se implicitně instaluje do
/usr/local
, nainstalovat někam do
/var/tmp/lobster-1.10-buildroot/usr
, ovšem tak, aby své
soubory hledal v /usr
. To znamená, že při
./configure
musíme nastavit cílové cesty
./configure --prefix=/usr …
protože tyto cesty si program nejspíš někam zakompiluje;
make
pak můžeme spustit jen tak bez argumentů; ale při
instalaci musíme všechny cesty změnit:
make install prefix=/var/tmp/lobster-1.10-buildroot …
U slušně napsaných programů se o to příliš starat nemusíme, ale kdy jste naposledy nějaký takový viděli…
doc/manual
ve zdrojových kódech
RPM, manuálové stránky rpm(8) a rpmbuild(8).Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
Vulgární ubohost anonyma zaslouží skončit v žumpě.
Zobrazit komentářAle uprimne, naproste vetsine uzivatelu, kteri si cirou nahodou potrebuje udelat balicek, checkinstall plne vyhovi. Ale tech par programatoru, co neumi dela distribucni balicky to snad oceniPřesně tak - o čtenost tohoto serveru bych se nebál. Ti, co dají přednost checkinstallu před čtením tohoto článku, se na tento server vrátí, až si zruší systém vadným "balíčkem"..
Cituji: Ja chapu, ze si potrebujes zduvodnit, proc psat takovy vicedilny serial, za kazdy dil ti zacinkaji korunky. Ale uprimne, naproste vetsine uzivatelu, kteri si cirou nahodou potrebuje udelat balicek, checkinstall plne vyhovi. Ale tech par programatoru, co neumi dela distribucni balicky to snad oceniUž jsi zkusil napsat nějaký článek tak, aby se nějaký "uživatel" neohradil, že to není pro něj? Mimochodem, proč například z báječného programu checkinstall nejde udělat následujícím způsobem rpm balíček?.
rpmbuild -tb /home/honza/Download/checkinstall-1.5.3.tgz error: Name field must be present in package: (main package) error: Version field must be present in package: (main package) error: Release field must be present in package: (main package) error: Summary field must be present in package: (main package) error: Group field must be present in package: (main package) error: License field must be present in package: (main package)Jakpak je asi ten tgz vytvořen? Proč v něm není specfile? Je checkinstall zabalen checkinstallem? Už chápete smysl článku?
Ale kdyz clanky nejsou, tak se vezme za vdek kde cimFacku si dej sám...
"jsou jeste nekvalitnejsi", takze by ti jeste nakonec autor mel blahosklonne podekovat, ze ten jeho clanek nepovazujes za ten nejhorsi odpad, ne? Hele, tvoje trolleni evidentne patri na zive.cz, tak si tam precti recenzi Lindows od cloveka, kteremu vadi zadavani hesla pro root account a muzes tam k tomu podobne "zasvecene" diskutovat. Hlavne uz prestan prudit tady, prestalo to uz davno byt zajimave.
Ze clanky nejsou, to je pravdive tvrzeni, potvrdil to i provozovatel tohoto portalu.Nikoliv. Potvrdil, že radši než vydat něco nekvalitního, tak nevydáme nic. Už se to i stalo, ale rozhodně ne příliš často. Takže pokud články vycházejí, není to (z pohledu) redakce nikdy jen nějaká vata.
A bere se pak za vdek i kde cim, napr. podradnym serialem, jak jsme jeli do bruselu, take pravdive a overitelne tvrzeni.To by mě zajímalo, na základě čeho to tvrzení označuješ za pravdivé. Považuješ-li ten seriál za podřadný, jde o tvůj názor, na který máš sice právo, ale těžko jej lze prohlašovat za pravdive a overitelne tvrzeni. Když tedy redakci obviňuješ z toho, že bere zavděk podřadným materiálem - jako je například tento nový seriál - je to hloupé, nepodložené, ale především neobhajitelné tvrzení.
Navic se tim bude jakou dobu zaplacavat na abclinuxu misto na zajimavejsi a vetsinove clankyKdybychom si řídili jen tímto kritériem, museli bychom mít portál s názvem hotcelebz.cz a vydávat na něm články o milostných avantýrách popových zpěvaček a pokleslých choutkách vládních politiků.</nadsázka>
Zkus se postavit mym nazorum a argumentum, neodvadej pozornost takovyma hloupostmaZadneho argumentu jsem si od tebe jeste nevsiml, takze nevim, cemu se mam postavit. Pro tebe je ten clanek zbytecny a k nicemu, vystacis si s checkinstallem, tak ho proste necti a budes mit klid. Evidentne nejsi cilovou skupinou. Ja take nechodim prudit na diskusni fora elektrotechniku s tim, ze mi staci strcit snuru do zasuvky a dal me to nezajima.
It is better to keep your mouth shut and be thought of as a fool than to open it and remove all doubtJistěže můžeš mít vlastní názor, ale ostatní taky mají právo říct, co si tak zhruba o tvém vystupování myslí...
presvedcovali te, abys to napsal, aby tu meli aspon neco.To by byl zvláštní druh masochismu... psát takto rozsáhlý a propracovaný seriál jen jako nějakou znouzectnost. Kdybychom jen chtěli mermomocí něco vydat, ale na kvalitě nebo obsahu by ani moc nezáleželo, těžko by to mohlo dopadnout takto... Vlastně by se to dalo chápat jako velká poklona. Když sháníme materiál, abychom tu meli aspon neco, tak oslovíme uživatele, který v diskuzních fórech odpověděl na bezkonkurenčně nejvíce dotazů, aby jako svůj první seriál napsal návod, který nemá rozsahem a podrobností obdobu. Co teprve až budeme chtít vydat něco opravdu extra...
Hezký víkend
Ale kdyz clanky nejsou, tak se vezme za vdek kde cimUz je to par let, co jsme zavedli pravidlo, ze nez vydat spatny clanek, to radeji nevydame zadny. Verim, ze si toho ctenari vsimli a ocenuji to.
checkinstallem
udelat balicek treba postfixu
, ctvrtinu souburu ani nezaznamena...
Od te doby co existuje checkinstall, ktery rpm balicky vytvari sam, tak tohle vubec neni potreba se ucit, prinejmensim pro potrebu vytvareni balicku sam pro sebeNaštěstí je, jak doufám, seriál zaměřen tak, aby bylo možno vytvořit balíčky nejen "sám pro sebe", ale udělat je pořádně, aby je mohli použít i ostatní. Jsem moc rád, že to autor vzal tak zgruntu..
<fb>No a když ještě většina adminů pochopí, že to je, z pohledu správce balíčků, vlastně všechno zcela dostačujující, na RPM a obdobné systémy si už nebudou chtít ani vzpomenout <fb>
Mě po cca 5 letech zkušeností s různými systémy správy balíčků nejvíce vyhovuje právě ten ze Slackware. Ty problémy, co jsem s ním měl byly daleko méně časté a komplikované než třeba s RPM nebo s tím z Debianu. IMHO, stejně asi víc záleží na kvalitě package maintainera než na samotném systému správy.
Btw. viděl jsem, že používáš i FreeBSD. Porty jsou skvělý, ale doporučuju vyzkoušet NetBSD a jeho pkgsrc. To je teprve ta pravá nirvána Nedokážu pochopit, proč není to NetBSD populárnější ...
make install DESTDIR=/var/tmp/lobster-1.10-buildroot
fgrep -r /var/tmp/lobster-1.10-buildroot /var/tmp/lobster-1.10-buildroot
Je asi zcele zbytečné ptát se, zda Yeti napíše stejný seriál i o vytváření balíčků tgz pro Slackware, že?
kam se podívám, tam flamuje, že Gentoo je nej, proto ta reakce :)Kdyz nekdo jen tak placne, ze Gentoo (nebo jakékoliv distro) neco neumi, a v reakcich se pak namita, ze ano, a dokonce se ukaze, jak - tak to neni flamewar. Tim se naopak brani rozsirovani fam a bludu. Jako je treba ten, ze "Gentoo je nej" :) PS. je :P
žádná ochrana proti překrývajícím se balíčkůmHmm,
FEATURES="collision-protect"
je tam asi k cemu?
po odinstalování balíčků nechává v /etc bordel.Hmm, a
CONFIG_PROTECT
a CONFIG_PROTECT_MASK
je tam asi k cemu? Osobne teda opravdu nestojim o to, aby me nejaka instalace/odinstalace/upgrade balicku prepisoval/mazal konfiguraky.
žádná ochrana reverzních závislostí (zrovna nedavno mi zrušil systém, když jsem zrušil prodporu rozšířených atributů) ... Kdyby portage zahodilo svou textovou databázi souborů napsanou v Pythonu, a místo toho adoptovalo RPM (včetně AutoReqProv), nemuselo by již třetí rok řešit problémy s reverzními závislostmi.
revdep-rebuild
je tam taky asi pro paradu...
Tohle fakt miluju... jestli chcete RPM, tak nepouzivejte Gentoo, ja pouzivam Gentoo mj. prave proto, ze RPM mam az po krk.
/etc/conf.d/cryptfs /etc/env.d/50python-docs /etc/init.d/lm_sensors /etc/pam.d/rexec /etc/pam.d/rlogin /etc/pam.d/rsh /etc/ppp/chat-default /etc/sensors.conf /etc/xml/.keep /lib/rcscripts/awk/fixlafiles.awk /sbin/fix_libtool_files.sh /usr/bin/adie /usr/bin/analyze /usr/bin/bdftogd /usr/bin/calculator /usr/bin/decode-dimms.pl /usr/bin/decode-edid.pl /usr/bin/decode-vaio.pl /usr/bin/decode-xeon.pl /usr/bin/foomatic-gswrapper /usr/bin/foomatic-rip /usr/bin/gdparttopng /usr/bin/gdtopng /usr/bin/gd2copypal /usr/bin/gd2topng /usr/bin/getafm /usr/bin/lemon /usr/bin/mpeg3cat /usr/bin/mpeg3dump /usr/bin/mpeg3toc /usr/bin/PathFinder /usr/bin/pear /usr/bin/pngtogd /usr/bin/pngtogd2 /usr/bin/podchecker /usr/bin/podselect /usr/bin/pod2usage /usr/bin/prove /usr/bin/reswrap /usr/bin/sensors /usr/bin/shutterbug /usr/bin/t1asm /usr/bin/webpng /usr/include/db.h /usr/include/db_185.h /usr/include/gdcache.h /usr/include/gdfontg.h /usr/include/gdfontl.h /usr/include/gdfontmb.h /usr/include/gdfonts.h /usr/include/gdfontt.h /usr/include/gd.h /usr/include/gd_io.h /usr/include/linux/i2c-dev.h /usr/include/linux/sensors.h /usr/include/sensors/error.h /usr/include/sensors/chips.h /usr/include/sensors/sensors.h /usr/lib/libdb.a /usr/lib/libdb_cxx.a /usr/lib/libdb_cxx.so /usr/lib/libdb_java.a /usr/lib/libdb_java.so /usr/lib/libdb.so /usr/lib/libgd.a /usr/lib/libsensors.a /usr/lib/libsensors.so /usr/lib/libsensors.so.3 /usr/lib/libsmpeg-0.4.so.0 /usr/lib/nsbrowser/plugins/javaplugin.so /usr/share/mime/globs /usr/share/mime/magic /usr/share/mime/XMLnamespacesPak něco z PHP, man stránky kernelu (které jsou navíc registrované v /usr/man, takže i kdyby tam kolize s /usr/share/man byly, tak se nenajdou), některá témata a ikony mezi zbytky GNOME1 a GNOME2 (např. po emerge gnome-libs je třeba dát emerge libgnomeui, jinak používáte některé ikony z GNOME1). Dívám se, že v některých případech je problém v tom, že tvůrce balíčku zvedl SLOT (zřejmě kvůli reverzním závislostem), a tak v systému zbyly dva konfliktní balíčky. Zrovna včera jsem strávil několik hodin čištěním Gentoo od opuštěných souborů.
INFO-DIR-SECTION GNU programming tools START-INFO-DIR-ENTRY * Libtool: (libtool). Generic shared library support script. END-INFO-DIR-ENTRYV nové verzi může být zcela něco jiného. Stejný význam má schemas soubor pro GConf. Ano, lze to řešit tak, že se balíček nejdříve odinstaluje, a pak nainstaluje. Ono by dokonce stačílo, kdyby bylo možné ze starého balíčku spustit skript ještě před tím, než se provede instalace nového balíčku. Jenže tak to RPM nedělá a neumí.
%post
instaluje své info stránky,
v %triggerpostun -- starý_balíček balíček
je nainstaluje též, není-li $1 == 0 a $2 == 0,
v %preun
odinstaluje své info stránky
Kdy tohle nebude fungovat?
Autore, polepši se!Máslo na mé hlavě...
Kde .tar.gz je originalny cisty (pristine) sourceJak kdy
$ tar tzf mutt_1.5.9.orig.tar.gz mutt-1.5.9.orig/ mutt-1.5.9.orig/upstream/ mutt-1.5.9.orig/upstream/tarballs/ mutt-1.5.9.orig/upstream/tarballs/mutt-1.5.9i.tar.gz.asc mutt-1.5.9.orig/upstream/tarballs/mutt-1.5.9i.tar.gz $ tar tzf bash_3.0.orig.tar.gz bash-3.0.orig/ bash-3.0.orig/bash-3.0.tar.gz $ tar tzf glibc_2.3.2.ds1.orig.tar.gz glibc-2.3.2.ds1/ glibc-2.3.2.ds1/.cvsignore glibc-2.3.2.ds1/prep.sh glibc-2.3.2.ds1/version glibc-2.3.2.ds1/glibc-2.3.2.tar.bz2 glibc-2.3.2.ds1/glibc-linuxthreads-2.3.2.tar.bz2 glibc-2.3.2.ds1/nptl-0.60.tar.bz2RPM má tu výhodu, že do src.rpm můžeš nacpat libovolné množství source a patch souborů, aniž bys je musel maskovat jako jeden zdroják a jeden patch. Jinak jsem samozřejmě zaujatý, protože deb balíčky narozdíl od RPM vytvářet neumím