Konečně se ochladilo, možná i díky tomu přestaly na chvíli padat rakety jako přezrálé hrušky, díky čemuž se na Virtuální Bastlírně dostane i na jiná, přízemnější témata. Pokud si chcete jako každý měsíc popovídat s dalšími bastlíři, techniky, vědci a profesory u virtuálního pokecu u piva, Virtuální Bastlírna je tu pro Vás.
Ještě před ochlazením se drát na vedení V411 roztáhl o 17 metrů (přesné číslo není známé, ale drát nepřežil) a způsobil tak… více »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.
PixiEditor byl vydán ve verzi 2.0. Jedná se o multiplatformní univerzální all-in-one 2D grafický editor. Zvládne rastrovou i vektorovou grafiku, pixel art, k tomu animace a efekty pomocí uzlového grafu. Zdrojové kódy jsou k dispozici na GitHubu pod licencí GNU LGPL 3.0.
Byly představeny novinky v Raspberry Pi Connect for Organisations. Vylepšen byl protokol auditu pro lepší zabezpečení. Raspberry Pi Connect je oficiální služba Raspberry Pi pro vzdálený přístup k jednodeskovým počítačům Raspberry Pi z webového prohlížeče. Verze pro organizace je placená. Cena je 0,50 dolaru za zařízení za měsíc.
CISA (Cybersecurity and Infrastructure Security Agency) oznámila veřejnou dostupnost škálovatelné a distribuované platformy Thorium pro automatizovanou analýzu malwaru. Zdrojové kódy jsou k dispozici na GitHubu.
Ubuntu nově pro testování nových verzí vydává měsíční snapshoty. Dnes vyšel 3. snapshot Ubuntu 25.10 (Questing Quokka).
Společnost Proton AG stojící za Proton Mailem a dalšími službami přidala do svého portfolia Proton Authenticator. S otevřeným zdrojovým kódem a k dispozici na všech zařízeních. Snadno a bezpečně synchronizujte a zálohujte své 2FA kódy. K používání nepotřebujete Proton Account.
Argentinec, který byl náhodně zachycen Google Street View kamerou, jak se zcela nahý prochází po svém dvorku, vysoudil od internetového giganta odškodné. Soud uznal, že jeho soukromí bylo opravdu porušeno – Google mu má vyplatit v přepočtu asi 12 500 dolarů.
Eben Upton, CEO Raspberry Pi Holdings, informuje o RP2350 A4, RP2354 a nové hackerské výzvě. Nový mikrokontrolér RP2350 A4 řeší chyby, i bezpečnostní, předchozího RP2350 A2. RP2354 je varianta RP2350 s 2 MB paměti. Vyhlášena byla nová hackerská výzva. Vyhrát lze 20 000 dolarů.
Představen byl notebook TUXEDO InfinityBook Pro 15 Gen10 s procesorem AMD Ryzen AI 300, integrovanou grafikou AMD Radeon 800M, 15,3 palcovým displejem s rozlišením 2560x1600 pixelů. V konfiguraci si lze vybrat až 128 GB RAM. Koupit jej lze s nainstalovaným TUXEDO OS nebo Ubuntu 24.04 LTS.
Tento seriál je určen začátečníkům, kteří neví, co je to překlad, případně neví jak na něj. Některé popisy jsou proto značně zjednodušeny.
V GNU/Linuxu, stejně jako v dalších unixových systémech, se velmi často používají překladače z rodiny gcc, kterými se také budeme v našem seriálku zabývat.
Překladač provádí přeměnu zdrojového kódu čitelného člověkem na binární kód, který je čitelný pro procesor. Ovšem čitelný pro konkrétní procesor. To, co umí i386, neumí Alpha a podobně.
Nutnost kompilace vznikla postupným vývojem. V dřevních dobách programování psali programátoři svá díla přimo ve strojovém kódu. Neměli jinou možnost, pokud chtěli, aby procesor věděl, co má dělat. Strojový kód je však pro větší projekty nevyhovující kvůli tomu, že zvládá pouze atomární kroky a složitější funkce je třeba velmi rozvlekle rozepisovat. Proto vznikly takzvané vyšší jazyky, které mají proti strojovému kódu řadu výhod:
Toto jsou některé důvody, které programátory vedou k použití vyšších jazyků. V těch napíší své programy a pustí je do světa. Protože se pohybujeme ve světě svobodného software, máme ke všem aplikacím zdrojový kód. Ten nám umožňuje programy zkoumat, opravovat a měnit. Abychom je poté mohli na svých počítačích spustit, musíme provést zmíněnou kompilaci.
Samostatnou kapitolou je pak optimalizace programu. Ta nám umožní během překladu zohlednit charakteristiky jednotlivých procesorů, a tím zrychlit následné provádění strojového kódu. Příklad: procesory novějších generací obsahují instrukce, které umožňují provádět rychleji některé matematické funkce. Pokud je tedy v binárním programu kompilátor použije, zvýší se jeho efektivita. Nevýhodou pak je, že takto přeložený program nám nepoběží na procesoru nižší generace. Programátora ovšem výsledná podoba nezajímá, tu určuje až překlad (respektive parametry předané překladači).
Tvůrci distribucí tyto překlady obvykle provedou za nás a my už získáme hotový binární (zkompilovaný) balíček, který jen rozbalíme na svůj disk pomocí instalačního procesu a můžeme začít program používat. Může však nastat několik situaci, které nám tento běžný postup znemožní:
Poslední možnost si popíšeme podrobněji, protože se nás pravděpodobně budou týkat nejčastěji. V moderním operačním systému provádí většina programů velmi podobné operace. Aby se každý programátor nemusel zabývat implementací obecných funkcí, existují takzvané knihovny. Tyto knihovny obsahují nejčastěji používané kódy, které může libovolný program použít. Jednoduše zavolá funkci v knihovně a ta nějak samostatně proběhne. Programátora tedy implementace vůbec nezajímá, stačí mu, že ví jak funkci zavolat.
Knihovny se do systému instalují samostatně (obvykle bývají v samostatných balíčcích) a bez nich pochopitelně programy fungovat nemohou. Bez nich by prostě kus kódu chybělo a program by nemohl některé funkce vůbec provádět. Správné knihovny ve správných verzích jsou tedy bezpodmínečnou nutností. Tady narážíme na zakopaného psa.
Nevýhoda knihoven se projeví ve chvíli, kdy se například snažíte do starší distribuce nainstalovat novější balíček. Tento balíček byl samozřejmě přeložen v novější verzi distribuce, která obsahuje také novější verze knihoven než ta vaše. Říkáme, že je program přeložen proti novější knihovně. Jelikož se jedná o binární balíček, je již pevně sestaven a očekává, že bude mít k dispozici knihovnu, proti které byl přeložen.
A nastává klasický problém závislostí, o kterém jste již jistě slyšeli. I kdyby se vám povedlo balíček nainstalovat, program nepoběží, protože nebude schopen s novou knihovnou komunikovat.
Chceme-li zjistit, které knihovny program potřebuje, můžeme použít
příkaz ldd
:
#ldd /bin/sh
|
V tomto případě je vše v pořádku a my vidíme, že žádná knihovna nechybí (v opačném případě bychom dostali místo cesty jen text "not found").
Jak z toho ven? Možností je několik:
To ovšem nemusí být řešení - nová knihovna může být závislá na dalších knihovnách a ty pak na dalších a dalších a problém může přerůst až ve změnu půlky systému.
Toto je samozřejmě ideální řešení, protože překlad už někdo udělal přede mnou. Ne vždy je to však možné.
Kompilaci vlastními silami si podrobně vysvětlíme a předvedeme na příkladu. Není to nic těžkého, protože člověk je tvor líný a vynašel si k tomuto účelu řadu automatických udělátek.
Ale o tom až příště.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
ldd /usr/bin/mplayernebo
ldd `which mplayer`
ldd /bin/lsPokud jste začátečník, použijte např. zdrojový RPM, který má v hlavičce BuildRequires, kde je vše potřebné vyjmenováno. Jinak sledujte výpis configure a kompilace, zanalyzujte protokol (config.log, výpis na konzoli), zjistěte, jaký soubor vám chybí, a pak hledejte ve správci balíků v YaSTu balíček, který potřebný soubor obsahuje.