Dnes a zítra probíhá vývojářská konference Google I/O 2025. Sledovat lze na YouTube a na síti 𝕏 (#GoogleIO).
V Bostonu probíhá konference Red Hat Summit 2025. Vybrané přednášky lze sledovat na YouTube. Dění lze sledovat na síti 𝕏 (#RHSummit).
Společnost Red Hat oficiálně oznámila vydání Red Hat Enterprise Linuxu 10. Vedle nových vlastností přináší také aktualizaci ovladačů a předběžné ukázky budoucích technologií. Podrobnosti v poznámkách k vydání.
Tuto sobotu 24. května se koná historicky první komunitní den projektu Home Assistant. Zváni jsou všichni příznivci, nadšenci a uživatelé tohoto projektu. Pro účast je potřebná registrace. Odkazy na akce v Praze a v Bratislavě.
Troy Hunt představil Have I Been Pwned 2.0, tj. nový vylepšený web služby, kde si uživatelé mohou zkontrolovat, zda se jejich hesla a osobní údaje neobjevily v únicích dat a případně se nechat na další úniky upozorňovat.
Microsoft představil open source textový editor Edit bežící v terminálu. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.
V Seattlu a také online probíhá konference Microsoft Build 2025. Microsoft představuje své novinky. Windows Subsystem for Linux je nově open source. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.
Z příspěvku Turris Sentinel – co přinesl rok 2024 na blogu CZ.NIC: "Za poslední rok (únor 2024 – únor 2025) jsme zachytili 8,3 miliardy incidentů a to z 232 zemí a z jejich závislých území. Tyto útoky přišly od 6,2 milionu útočníků (respektive unikátních adres). SMTP minipot je stále nejlákavější pastí, zhruba 79 % útoků bylo směřováno na tento minipot, 16 % útoků směřovalo na minipot Telnet, 3 % útoků směřovaly na minipot HTTP a 2 % na minipot FTP. Dále jsme zaznamenali 3,2 milionu unikátních hesel a 318 tisíc unikátních loginů, které útočníci zkoušeli."
Byla vydána (Mastodon, 𝕏) nová verze 3.0.4 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP (GNU Image Manipulation Program). Přehled novinek v oznámení o vydání a v souboru NEWS na GitLabu. Nový GIMP je již k dispozici také na Flathubu.
Byla vydána nová stabilní verze 7.4 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 136. Přehled novinek i s náhledy v příspěvku na blogu.
Existují dvě věci, které bych v Linuxu nejraději změnil. Jsou to 1) omezená přenesitelnost binárních balíčků (případně jiných binárek) z jednoho operačního systému do druhého a 2) takzvané peklo závislosti.
Důvod, proč píšu tento článek, není takový, že bych měl v Linuxu problémy, neuměl distribuci správně používat a potom si přišel do blogu stěžovat. Takový idiot nejsem. Takové základní věci, jako jsou zdroje software, balíčkovací systém a podobné věci, ovládám. Používám to správně, nemám s tím problémy. Umím taky správně instalovat a odebírat balíky. Ale jde mi o to, že jsem časem otevřel oči, přestal být zabedněný a začal si uvědomovat, že by bylo lepší, kdyby některé věci v Linuxu vypadaly jinak, než vypadají. O těch věcech se zdaleka nedá říct, že jsou inteligentně navržené, dalo by se spíš říct, že jsou navržené poněkud debilně.
Omezená přenesitelnost binárních balíků (popřípadě jiných binárek) ze systému do systému. Když máme stažené balíky pro určitou distribuci Linuxu, nemůžeme (aspoň většinou) ty samé balíky používat pro jinou distribuci Linuxu, protože by ty aplikace správně nefungovaly a mohl by se dokonce poškodit i operační systém. Kdyby šlo jenom o omezení takového druhu, že nesmíme použít určitý typ balíku do distribuce Linuxu, která používá jiný typ balíku, tak to bych ještě snesl. To, že balíky DEB nemůžeme používat pro distribuci používající RPM nebo obráceně, nebo jinou záměnu typu balíku, to ještě snesu. Nebo to, že 64bitové balíky nemůžu použít pro 32bitový systém nebo obráceně, to taky ještě snesu. Ale čeho už mám plné zuby je to, že omezení je tady mnohem více. Balík je totiž použitelný jenom pro jednu distribuci Linuxu a do jiných distribucí (a to včetně těch, co používají stejný typ balíků) je nepoužitelný (aspoň většinou). A co víc, nemůžeme ten balík použít ani pro jiné vydání te stejné distribuce (aspoň většinou). Tyto omezení se mi už zdají trochu moc a bylo by dobré s tím něco udělat.
Kvůli omezenosti te přenesitelnosti máme nevýhodu. Když chceme nainstalovat v Linuxu nějaký program, ovladač nebo něco jiného, musím si vybrat balík, který je určený přesně pro ten Linuxový operační systém, který používám. Z toho plyne velké omezení, protože nemůžeme používat balíky od kud se nám zachce. Můžeme čerpat balíky pouze z DVD, které máme ke svému Linuxovému operačnímu systému, nebo z internetových zdrojů softwaru. Od jinud většinou brát nemůžeme. Navíc, co se týká internetových zdrojů softwaru, tak můžeme čerpat pouze z těch zdrojů, které jsou určené pro naši distribuci Linuxu a zároveň pro vydání dystribuce, které používáme. Když si to všechno shrneme, tak to omezení je opravdu velké. Pokud chceme sehnat nějaký Linuxový program, ovladač a další, který na DVD nemáme, máme dost omezené možnosti, odkud si to na internetu můžeme stáhnout. Jsme vlastně zpravidla odkázání jenom na ty naše jediné repozitáře, určené přesně pro naši distribuci a vydání distribuce Linuxu. Kdyby náhodou z internetu zmizely, jsme v pytli, protože jiné použitelné zdroje zpravidla nemáme.
Kvůli tomu, že jsme tak moc omezování v tom, jaké balíky můžeme používat, tak máme problém: Co když máme nějakou aplikaci, ale my z nějakého důvodu potřebujeme jinou verzi aplikace, než máme, třeba novější nebo starší. Ikdyby ta požadovaná verze existovala, tak si ji nemůžeme pořídit, pokud není ve zdrojích softwaru, které můžeme používat. Ikdyby jsme ji našli v jiných zdrojích, tak ji nemůžeme použít. Pokud tu verzi aplikace chceme mít, nezbývá nám nic jiného, než použít tyto možností: Stáhnout si zdrojové kódy a jak idioti kompilovat, u toho se mordovat a smolit se s tou složitou ludrou. Nebo přejít na jiné vydání distribuce, pro které je ve zdrojích softwaru požadovaná verze aplikace; tady si zase rozesereme věci, které nám v ostatních aplikacích nebo i v operačním systému vyhovovaly. Nebo máme i jiné možností, ale ani ty nejsou o nic lepší. Zase vidíte, jak je to omezení nepraktické. Naproti tomu uživatelé běžného operačního systému takové problémy nemají. Ti si zajdou třeba na Slunečnici nebo jiné stránky, tam najdou verzí programu vpysk a můžou si vybrat, aniž by museli přejít na novější nebo starší operační systém a taky aniž by museli něco kompilovat. Vedle uživatelů běžného operačního systému se my, kteří máme Linux, musíme cítit jak mrzáci.
Kvůli tomu omezování v tom, jaké balíky můžeme používat, tak máme ještě další problém: Co když potřebujeme nějakou aplikaci, a co když ve zdrojích softwaru, které můžeme použít, tu aplikaci nenajdeme. Ikdyby ta požadovaná aplikace existovala, a dokonce ikdyby pro Linux existovala, tak si ji nemůžeme dopřát, pokud není ve zdrojích softwaru, které můžeme používat my. Ikdyby jsme ji našli v jiných zdrojích, tak ji nemůžeme použít. Pokud tu aplikaci chceme mít, nezbývá nám nic jiného, než použít tyto možností: Stáhnout si zdrojové kódy a jak trotli kompilovat, u toho se mordovat a smolit se s tou složitou bestii. Nebo přejít na jiné vydání distribuce, pro které je ve zdrojích softwaru požadovaná aplikace; tady si zase rozesereme věci, které nám v ostatních aplikacích nebo i v operačním systému vyhovovaly. Nebo máme i jiné možností, ale ani ty nejsou o nic lepší. Zase vidíte, jak jsme na tom v Linuxu mizerně a jak neprakticky to máme zařízené. Naproti tomu uživatelé běžného operačního systému takové problémy nemají. Pokud ten program pro jejich operační systém existuje, tak si ho můžou stáhnout a použít, aniž by museli přecházet na novější nebo starší operační systém a taky aniž by museli něco kompilovat jak debili. Vedle uživatelů běžného operačního systému se musíme cítit jak úplní mrzáci.
Kvůli tomu omezování v tom, jaké balíky můžeme používat, se může stát podobný problém, jak se stal mi: Do druhého počítače jsem nainstaloval nové vydání distribuce Linuxu a zjistil jsem, že v mém správci balíčků chybí program Rezound, který nutně potřebuji. A to i přesto, že mám přidané všechny zdroje softwaru, které můžu použít. Zjistil jsem, že ten program tam chybí, protože balík pro Rezound zrušili a už ho do nových repozitářů nedávají. Prostě byl vyřazen. Proto mi asi nezbyde nic jiného, než tyto možností: Najít si zdrojové kódy a dřít se s kompilací. Nebo použít starší vydání distribuce Linuxu, ale to s tím novým počítačem nemusí spolupracovat a taky se může stát, že repozitáře pro to starší vydání distribuce Linuxu už na internetu nebudou. Naproti tomu uživatelům běžného operačního systému se nic podobného nemůže stát, ikdyby přešli na novější verzi operačního systému. Pokud mají programy od minula stažené a někde vypálené, můžou si je znovu uložit do počítače a nainstalovat a je dost pravděpodobné, že to s novým operačním systémem bude opět spolupracovat. Dokonce jim nemusí vadit ani to, jestli ten program z internetu náhodou nezmizel. Naproti tomu my, uživatelé Linuxu, si musíme připadat jak úplní kripli.
Další nevýhoda, která vzniká z omezení te přenesitelnosti balíků, je ztížení přechodu na jinou distribuci Linuxu nebo dokonce na jiné vydání stejné distribuce Linuxu. Například jsme si za celou dobu pořídili spoustu různých aplikací. Když se později rozhodneme vyměnit operační systém - přejít na jinou distribuci nebo na jiné vydání distribuce, tak všechny aplikace, které jsme si pracně pořídili a u kterých pracně vyřešili, jak je zprovoznit, jdou do hajzlu. Pokud totíž chceme ty aplikace znovu mít, tak si je musíme pořídit tentokrát z jiných repozitářů. A tady je riziko, že některé požadované aplikace neseženeme nebo že je seženeme ve verzích, které nám vyhovují nebo ve verzích, které správně nefungují. Opět vidíte, jak je to omezení nepraktické. Uživatelé běžného operačního systému jsou na tom lépe.
Kvůli omezené přenesitelnosti těch balíků se může stát podobný problém, jak se stal mi: Na internetu se postupně začaly stránky měnit a můj internetový prohlížeč si s tím čím dál častěji nevěděl rady, prostě to nezvládal, byl na to už dost zastaralý. Přestával být podporován a bylo zapotřebí si nainstalovat novější verzi. Jak si mám, hyml hergot, nainstalovat novější verzi, když v mých zdrojích softwaru není! To najdu nanejvýš ve zdrojích softwaru pro novější Linuxový operační systém. Tak mi nezbylo nic jiného, než přejít na novější Linuxový operační systém. A už šlo všechno do hajzlu. Všechno, co mi v operačním systému vyhovovalo, a všechno, co jsem měl v operačním systému pracně rozchozené, jsem musel zahodit a nahradit něčím, co mi moc nevyhovuje a musel znovu rozchodit. Také různé aplikace, které jsem měl pěkně rozchozené a které byly ve verzích, které mi vyhovovaly, jsem musel zahodit a nahradit verzemi, které mi nevyhovují a musel jsem je znovu rozchodit. Takže kvůli jedne pitomé věci muselo jít do hajzlu všechno a všechno jsem musel předělat a znovu zprovoznit. Jak praktické! A to se vlastně může stát kvůli čemukoliv, nejen když potřebujeme lepší internetový prohlížeč. Abychom jednu věc dali do pořádku, tak si musíme rozdrbat jiné věci. No nemáme to zařízené debilně? Něco podobného se uživatelům běžného operačního systému stát nemůže, nebo ne v takové míře. Opět se my, uživatelé Linuxu, vedle nich musíme cítit, jak úplní kriplové.
Další nevýhoda, která vzniká z omezení te přenesitelnosti balíků, je to, že si nemůžeme zalohovat na CD (DVD) různé aplikace a balíky. Nebo vlastně můžeme, ale je nám ta záloha k něčemu jenom do te doby, dokud nepřejdeme na jinou distribuci Linuxu nebo na jiné vydání te samé distribuce. Potom je nám celá záloha k ničemu, protože nám ty vypálené balíky nebudou pasovat. Opět vidíte, jak je to omezení nepraktické. Když se podíváme, že uživatelé běžného operačního systému si běžně zalohují aplikace na CD (DVD), zatímco my toho moc využít nemůžeme, máme jim co závidět.
Je sice pravda, že omezení te přenesitelnosti se dá obejít: Můžeme si software pro Linux sehnat i jinak, než použitím vyhovujícího balíku, například můžeme stáhnout software v podobě zdrojového kódu. Zdrojový kód už takové omezení nemá, že by se hodil jenom na určitou distribuci Linuxu a vydání, tak by se problém mohl zdát vyřešený, ale toto řešení za moc nestojí, protože instalace ze zdrojového kódu není nic jednoduchého: Nestačí ten zdrojový kód vzít, nainstalovat ho a hotovo. Místo toho se musíme jak dřít magoři. Musíme totíž kompilovat nebo vyrábět balíčky. Je to dřina, zdržuje to a je to pakárna, samé složitosti.
Další věc je takzvané peklo závislostí. Většinou balík závisí na jiných, ty pak ještě na dalších a podobné situace. Proto, když se rozhodneme nainstalovat nějakou aplikaci, nestačí si stáhnou příslušný balík, nainstalovat ho a hotovo. Místo jednoho balíku musíme většinou stáhnout i hodně dalších balíků, aby se vyřešily závislosti a mohli jsme balík konečně naistalovat.
Je sice pravda, že problémy se závislostmi jsou v Linuxu vyřešené tím, že se závislosti při instalaci balíků vybírají automaticky. K tomu se používá správce balíků. Nejdříve je zapotřebí si přidat a nastavit zdroje softwaru a až potom bychom mohli instalovat balíčky. Toto řešení podle mě moc nestačí, protože to přidávání a nastavení zdrojů softwaru je práce navíc a jednak je zapotřebí připojení k internetu. Závislosti jsou velmi nepraktické. Mnohem lepší řešení by bylo docílit toho, aby jednotlivé balíky na sobě nezávisely. Balíky na sobě zřejmě závisí kvůli tomu, že aplikace, obsažená v balíku, používá taky funkce obsažené v jiných balíkách a proto závisí na těch balíkách. Proč nemá každý balík všechny funkce a vůbec všechno, co ta aplikace potřebuje, obsažené v sobě? Byl by ten balík sice velký, ale hlavně, že by měl všechno, co potřebuje, v sobě obsažené.
Ukážeme si příklad, kdy se ukázalo, že obě vlastnosti - omezená přenesitelnost a závislosti - jsou velmi nepraktické. Mám dva počítače. V obou je Linux, ale v každém jiná distribuce Linuxu. Jeden počítač byl připojený k internetu a druhý nebyl, protože jsem u toho druhého počítače žádný internet ani nepotřeboval. Navíc měl rozbitou síťovou kartu, takže jsem ho k internetu ani připojit nemohl. Potom jsem potřeboval do toho druhého počítače doinstalovat nějaké aplikace. Musel jsem je nejdříve stáhnout na prvním počítači z internetu, vypálit a do toho druhého počítače nainstalovat z CD. Kdyby nic nezáviselo, mohl bych postupovat jednoduše. Stáhnul bych si balíky s příslušnými aplikacemi, ty balíky bych vypálil na CD, přinesl CD k druhému počítači, balíky uložil do počítače a jednoduše nainstaloval. Ale kvůli těm posraným závislostem jsem to tak dělat nemohl. V tom druhém počítači to začalo řvát, že mu chybí splněné závislosti. Tak mi nezbývalo nic jiného, než si je opsat a na prvním počítači je stáhnout a vypálit. Když jsem pak nové CD donesl k druhému počítači, zase to začalo řvát, že mu chybí závislosti k těm závislostem. A tak se to opakovalo pořád dokola, musel jsem se s tím dřít, jak idiot, než jsem to dal dohromady. Jak praktické! Navíc, aby si správce balíku se závislostmi poradil, musel jsem z těch balíků sestavit vlastní zdroj softwaru a přidat ho. Navíc pokaždé, když jsem doplnil chybějící balík, mesel jsem ten zdroj předělat. Všechnu tu práci bych si mohl ušetřit tak, že bych na prvním počítači, na kterém jsem stahoval, nechal řešit automaticky závislosti, ale nešlo to, protože tam byla jiná distribuce Linuxu a to bych musel stahovat balíky pro tuto distribuci, ale zase bych ty balíky nemohl použít pro distribuci, která je v druhém počítači. Tady vzniká problém zase kvůli omezené přenesitelnosti. Jak praktické!
Nebo si ukážeme případ lidí, kteří nemají internet a třeba ho ani nepotřebují. Jak budou postupovat, když se rozhodnou doinstalovat nějakou aplikaci. Ti, kteří mají běžný operační systém, by postupovali tak, že půjdou na internet někam do knihovny, tam by si zašli na Slunečnici nebo něco podobného, vybrali požadovanou aplikaci, stáhli binárku a vypálili na CD. Přinesli by vypálené CD domů, soubor z CD uložili do počítače a už můžou jednoduše nainstalovat. Naproti tomu my bychom museli postupovat, jak úplní kripli, a to kvůli tomu, že v našem operačním systému se používají ty posmolené závislosti. Když si totíž přinesu vypálenou aplikaci na CD a budu se pokoušet z toho instalovat, tak to začne řvát, že mu chybí splněné závislosti. Proto mi nezbyde nic jiného, než si ty závislosti opsat a jít znovu do města stáhnout a vypálit si chybějící závislé balíky. Když si to vypálené CD přinesu a budu chtít doplnit do počítače, zase to může řvát, že mu chybí závislosti k těm závislostem. A tak můžu do města lítat pořád dokola jak idiot a dřít se stím. Aby toho nebylo málo, budu si muset z těch sezbíraných balíčků sestavit svůj zdroj softwaru, nastavit si ho, aby si správce balíčků mohl lépe vyhledávat závislosti, takže mám další práci navíc. A protože bych závislé balíky musel do toho doplňovat několikrát, musel bych pokaždé ten svůj zdroj předělat, další práce. Ano, existuje možnost, abych nemusel pořád chodit do města a ručně se s tím dřít a mohl si nechat závislosti řešit a stahovat automaticky pomoci správce balíčků. Musel bych však vzít sebou do města celý počítač, do kterého chci aplikaci doinstalovat, tam ho dočasně připojit k internetu, nastavit si internetové zdroje softwaru a aplikaci si doinstalovat a závislosti se stáhnou a vyřeší samy. Ale kdo se bude jak debil smykat s celým krámem. Abych neměl tyto komplikace, nakonec jsem byl donucen internet si pořídit, ikdyž jsem ho jinak nepotřeboval. Kvůli závislostem jsme nuceni si pořídit internet. Je to nevýhoda, protože každý internet nepotřebuje. Když si celý tento odstavec shrneme, tak co se týká závislostí, máme uživatelům běžného operačního systému co závidět. Vedle nich si musíme připadat jak mrzáci. Jak jsou ty závislosti praktické!
Různých nevýhod, které plynou z te omezené te přenesitelnosti balíků, nebo z těch posr. závislostí, může být v Linuxu i více, nejen takové, které jsme si v tomto článku popsali. Opět máme uživatelům běžného operačního systému co závidět. Ti ani takové nevýhody řešit nemusí.
Obě vlastnosti - omezená přenesitelnost a závislosti. Čím to vlastně je? Linuxem, nebo tím, jak jsou udělané ty balíky?
Proč se nesetkáme s omezenou přenesitelnosti (a pokud ano, tak daleko méně) v jiných systémech, například ve Windows? Dost často stejná binárka nějaké aplikace pasuje hned do několika druhů Windowsu: Například do XP, 98, 2000, Visty a podobně. Když to jde u Windows, proč to nejde u Linuxu? Nebo proč se v těch jiných systémech, například ve Windows, nesetkáváme se závislostmi (a pokud ano, tak daleko méně); tam stačí přinést binárku aplikace, nainstalovat a hotovo. Když to jde u Windows, proč to nejde u Linuxu?
Proč se nesetkáme s omezenou přenesitelnosti (a pokud ano, tak daleko méně) při instalaci aplikaci v Linuxu ve Wine? Dost často stejné binárka exe nějaké aplikace pasuje hned do několika operačních systémů Linux, ve kterých je Wine. A co víc, můžou to být i různé distribuce Linuxu a různě staré verze distribuce. A můžou mít i různou verzi Wine. Do všech těch systémů, nebo když ne do všech, tak do mnoha systémů ta stejná binárka exe pasuje. Proč se potom podobně nechová binárka určená přímo pro Linux, aby vyhovovala několika distribucím zároveň a několika vydáním distribucí. Nebo proč se při instalaci binárky exe do Linuxu přes Wine nesetkáváme se závislostmi (a pokud ano, tak daleko méně); tam stačí přinést binárku aplikace, nainstalovat a hotovo. Když to jde u toho, proč to to bez závislisti nefunguje i u binárek určených přímo pro Linux?
Ty dvě vlastnosti, o kterých jsem mluvil, - omezená přenesitelnost a závislosti, nemůžou být způsobené ani tím, o jakou aplikaci se jedná. Schválně si vezmeme příklad aplikace, která existuje i pro Linux i pro Windows. A vyzkoušíme si ji
1) v podobě balíku pro Linux,
2) v podobě exe pro Windows
3) v podobě exe pro Windows ale použité v Linuxu přes Wine.
A schválně si ve všech případech vezmeme stejnou verzi aplikace.
Jaký bude výsledek? V prvním případě bude aplikace vyžadovat mnoho závislosti. Co se týká přenesitelnosti do různých systémů, balík bude použitelný zpravidla jenom v jedne distribuci Linuxu a jedne verze distribuci Linuxu, to podle toho, jaký máme balík. Ve druhém případě si aplikace zpravidla nevyžádá žádnou závislost, jednoduše půjde nainstalovat a funguje. Co se týká přenositelnosti do různých systémů, je dost pravděpodobné, že stejné binárka půjde nainstalovat do několika různých Windows. Ve třetím případě si aplikace zpravidla nevyžádá žádnou závislost, jednoduše nainstalujeme a funguje. Co se týká přenesitelnosti do různých systémů, je dost pravděpodobné, že stejná binárka půjde nainstalovat do několika různých distribucí Linuxu, ve kterých je nainstalované Wine; dokonce můžou být i různé verze stejné distribuce Linuxu; dokonce můžou být i různé verze Wine. Neříkám, že úplně všude to půjde, ale půjde to v mnoha Linuxových operačních systémech.
Tiskni
Sdílej:
Takovyho textu a pritom o hovnu, ze?
LOL, +1
-fomit-frame-pointer
Nezlob se na mne, ale to o cem pises jsou hlouposti. Nechapes co jsou to zavislosti? To jsou knihovny, bez kterych ti ten program nepojede. Ve Windows taky potrebujes knihovny. Nebo chces, aby bylo vsechno linkovano staticky?
Je ti jasne, ze pak bhy vzrostla spotreba mista na disku?
Repozitare jsou skvela vec. Ano, je videt, ze nemas pripojeni k internetu. To je nemile. Tak si natahej Debian testing vsechny obrazy a mas klid.
Jeste jsi moc neproniknul do sveta Linuxu (ano, potreba pripojeni na net je pro nekoho nevyhoda, pro mne ne), ale casem pochopis, ze tve pozadavky jsou proste nesmysl.
Srovnavas tady hrusky s jabkama. Ve Windows to s tou kompatibilitou taky neni ko vi jak zhave a 32/64 bit taky neni kdo vi co (vis o tom, ze na 64 bitu nejde nejedna novejsi hra ani nainstalovat natoz aby fungovala?). Nehlede na fakt, ze se 64 bity prisly Windows mezi poslednimi.
Zapomnel jsem dodat i zvyseni spotreby RAM, jak uz tady padlo. To je jeste horsi.
call
nepředáváte ukazatel?
mov rax, adresa_funkce call [rax]S voláním přes ukazatel to bude
mov rax, [adresa_ukazatele] call [rax]Takže počet instrukcí je stejný, jen druhý kód je o jeden byte větší. A když linker bude hodnej a funkce bude "kousek" od RIP, tak byste mohl použít relativní adresaci k RIP, to je fakt... Ale na x86 musíte trotlovat se zásobníkem tam, kde by se na x86_64 použil další registr. Zásobník je paměť, takže plácáte pamětí pak na x86 ...
mov
y než přes aritmetické instrukce, tam je něco fundamentálně špatně call [rax]
tuším nemaj bejt ty hranatý závorky, já jsem to nespouštěl a tohle by asi dopadlo blbě Nebudu se vyjadřovat k článku, neboť mám stejný názor, že revize současného balíčkovacího systému v Linuxu by neškodila. Podle mě je momentální implementace v Linuxu špatná (byť zdaleka ne zcela), a hlavně nejednotná. Ale je mi to jedno. Závislostí bych se tak radikálně nezbavoval.
Nicméně hry na Windows jsou něco jako druh viru. Autory her pramálo zajímají standardy Windows, ani doporučené postupy, či co je ve Windows zakázáno. Často je hry chovají, jako kdyby celý počítač byl určen pouze jim a cokoli jiného v systému, než ona hra je škodná, na které nezáleží. Chování tvůrců her k systému není na hraně, ono je daleko za hranou.
Sám hry nehraji a neinstaluji už řadu let, a zakázal jsem si to, neboť je to ztráta času – zejména současné hry, které ukazují spíše technickou dokonalost enginu, než že by to mělo příběh či myšlenku. Nicméně zprostředkovaně se s hrami setkávám přes své projekty zdarma, které nabízím. Chronicky mi píší hráči, či lidé, kteří instalovali hru, že mají problémy. Dnes už to neřeším – protože produkční oddělení hry je placeno za to, že hra bude fungovat i za cenu, že systém bude po instalaci jejich hry zralý na formát a čistou instalaci.
Mezi běžné praktiky her patří přemazání sdílených knihoven v systému a jejich nahrazení verzí z instalačky hry, klidně o několik verzí starší, což byl hlavní zdroj problémů, které způsobovaly špatnou funkci mých projektů u hráčů. Přesněji řečeno po instalaci některých her nešlo spusti půlka aplikací na počítači zcela běžně.
Sami hráči jsou zvláštní sorta lidí, kteří mají jiná pravidla. Oni mají počítače jen pro hry, pro ně je počítač stabilní, když vydrží bez pádu dvě hodiny, to nazvou betonovou stabilitou. Proto také hráči jako první všude řvali a prosazovali Visty, neboť podle jejich měřítek to byl nejlepší systém na světě.
Takže to, že hry mají problémy je jedině dobře a pouhým důsledkem praseckého tvůrce hry. Ničím jiným. Nic jiného to neznamená.
Jinak 64 bitová Windows poměrně bez problémů spouští většinu 32 bitových programů. Pokud se autor programu držel standardů Windows, není jediný problém.
Mezi běžné praktiky her patří přemazání sdílených knihoven v systému a jejich nahrazení verzí z instalačky hry, klidně o několik verzí starší, což byl hlavní zdroj problémů, které způsobovaly špatnou funkci mých projektů u hráčů. Přesněji řečeno po instalaci některých her nešlo spusti půlka aplikací na počítači zcela běžně.Ano, souhlasím, za dob Windows 95/98 tomu tak opravdu bylo. Ale dnes je jiná doba a nic takového se neděje. Si představte, že jsem si naprogramoval program, kde chodíte s kočkou po střeše a skáčete dolů. Pojmenoval jsem ho "cat" a normálně zkompiloval a nainstaloval do /bin a představte si, že mi klidně přepsal systémovou utilitku. Pak jsem si naprogramoval webový prohlížeč postavený na webkitu, pojmenoval jsem ho firefox a nainstaloval do /usr/bin. A teď mi normálně nechce balíčkovací systém dovolit instalaci Mozilla Firefoxu, vůbec nevím proč ... tak když už je v /usr/bin ten můj, tak proč mi to nenabídne instalaci do jiného adresáře? Protože stojí balíčkovací systém za ho*no. Každý způsob má své výhody a nevýhody, ale já souhlasím s autorem zápisku. Ve Windows si ani aplikace moc knihoven tahat nemusí, protože tam je poměrně dobré API a nic extra potřeba není.
normálně zkompiloval a nainstaloval do /bin … pojmenoval jsem ho firefox a nainstaloval do /usr/bin
A v tom je ale chyba – ručně kompilované programy si máš dávat do /usr/local/bin
– tam nebudeš mít konflikty s balíčkovacím systémem a budeš si všechno řídit pěkně sám. Víc verzí jednoho programu taky můžeš mít, já si třeba instaluji různé verze Netbeans do /opt
– tam pak mám složky pro jednotlivé verze. Výchozí si dáš do $PATH
a osatní si spouštíš zadáním absolutní cesty… žádný problém.
ručně kompilované programy si máš dávat do /usr/local/binZkompiloval jsem si svůj vlastní program jménem "firefox" a nahrál do /usr/local/bin. Pak jsem si zkompiloval Mozilla Firefox, dal make install a on mi přepsal můj program nějakým symlinkem! Aniž by se mě na něco zeptal!
To už je ale tvůj problém Kompiluješ si sám programy (je úplně jedno, jestli jsi je napsal ty nebo někdo jiný) a můžou se ti přepsat – proto si musíš zvolit při konfiguraci/kompilaci cestu, kam se má instalovat. To je jako kdybys naříkal, že se ti přepsaly soubory v
Program files
– to je úplně stejné.
Já samozřejmě Linux nekritizuji. Vyhovuje mi a na nic si nestěžuji. Linux už používám rok a půl a nemám s linuxem žádné problémy. Normálně jsem si přidal zdroje softwaru a instaluji balíky. Nemám problémy ani s automatickým řešením závislostí. Dokonce můžu při instalaci balíčků použít přepínač, pomocí kterého se mi stažené balíky, a to včetně závislých, během instalování uloží a to taky využívám, abych si balíky mohl taky vypálit. Ale potom přišel nápad, že bych si chtěl stáhnout všechny balíky, které se mi na něco hodí a už jsem začal vymýšlet různé úvahy o tom Linuxu. Článek, který jsem napsal, je jenom taková úvaha, co by se mi hodilo, neříkám, že se ty požadavky musí za každou cenu splnit.
Jinak - připojení k internetu mám, ale jednalo se mi, že by se hodilo, aby nebylo nutné mít internet, protože ne každý ho má.
Vaše "problémy" jsou způsobeny jen a pouze tím, že jste se nepodíval do volně (zdarma!) dostupné dokumentace k Mandriva Linuxu, kde je správě softwaru věnováno dost prostoru a kde hned na začátku najdete toto upozornění, cituji:
"Máte-li pocit, že předchozí slova byla určena uživatelům systémů Windows, pak je váš pocit správný. Mezi těmito uživateli jsou nejčastější dotazy právě na správu softwaru – provázené obvykle komentářem, jak je správa softwaru v Mandriva Linuxu složitá. Ona je ve skutečnosti velmi jednoduchá, jen se nesmíte řídit tím, co znáte z Windows. V tomto jsou oba systémy opravdu značně odlišné..."
Veškeré nářky na závislosti apod. jsou z mého pohledu naprosto liché, a jak naznačují i předchozí komentáře, tak v tom asi nebudu sám.
jj, už viackrát som žasol, ako komplikovane sa čerství prešelci z windows snažia do linuxu narvať aplikácie, ktoré sú cez repozitár dostupné na 3 kliknutia
To bude asi tím, že když si vyhlídnou nějaký program, tak na webu toho programu jsou většinou linky na stažení Win, Mac a Linux verze programu. O tom, že je to jednodušší instalovat v balíčkovacím programu se tam většinou nic napíše.
Správce softwaru bývá často označován jako správce balíčků. Proč? V Mandriva Linuxu máme jen jeden program, který se stará o instalaci, případně odebrání programů. Instalace programů probíhá tak, že správci softwaru dodáme balíček s programem a instalace proběhne v režii správce softwaru.Poslední dva řádky nám přímo říkají, jaký balíček máme hledat. Na rovinu - za první půlrok práce s Linuxem jsem ani jednou neviděl a ani nepotřeboval vědět, jak se přesně balíček jmenuje. Nejdůležitější věta je ukryta až v toku textu v půlce strany 293:
V praxi to znamená, že když chcete nainstalovat nějaký program, nemusíte shánět a stahovat balíčky, stačí se po něm pouze podívat ve Správci softwaru.Dále, začátečník, kterému chybí v čerstvě nainstalovaném systému nějaký program určitě nepotřebuje vědět, jak probíhá indexace. Dál už nemám výhrady. Toto byl můj osobní pohled, ale soudě podle mnoha začátečníků s MDV v různých diskuzích (i autora blogpostu), nejsem sám. Byl bych rád, kdyby tam bylo velké tučné upozornění "Dej si Control Centrum → Software → Hledat a řeš to, až budeš se systémem trochu umět". Mňaúcta
>Obsah → strana 291. První dva odstavce jsou takový úvod. Osobně bych z nich a rámečku pochopil asi to, že nebudu stahovat exe. Tento odstavec přímo navádí ("dodáme balíček") k tomu, že ten balíček někde profidérně seženeme:
Nenavádí k ničemu, definuje pojmy. V případě, že uživatel nic neví, je to jediný možný způsob, jak mu (cizí) pojmy vysvětlit. Nikde není napsané, že máte něco stahovat a pokud se na to vrhnete ihned po přečtení toho odstavce, jste blb (ne osobně) a nezachrání vás sebelepší návod. V obsahu je také kapitola Nejčastější chyby a dotazy ke správě softwaru (a odkaz na ni je hned na konci 2. odstavce na str. 291), cituji:
"Chybné závislosti při instalaci pomocí urpmi
Problém: Stáhl jsem si ze zdroje balíček a příkaz urpmi jmeno balicku hlásí nevyřešené závislosti, co s tím?
Problém může mít několik příčin. Nejpravděpodobnější je, že jste si stáhli samostatný balíček ze zdroje a pokoušíte se jej nainstalovat. Podívejte se o kapitolu zpět, kde je vysvětlen princip zdrojů softwaru a příčina problému by již měl být zřejmá. Stažený balíček závisí na dalších balíčcích ve zdroji, které ovšem k dispozici nemáte. Kdyby byl místo stažení jednoho balíčku přidán celý zdroj softwaru, nikdy podobný problém nenastane. V jeho indexu jsou informace o všech balíčcích a správce softwaru by si podle nich vyřešil závislosti sám. Používejte zdroje softwaru vždy jako celek!"
Kdybyste tu knihu četl jako celek, nikdy byste problémy neměl. Kdybyste se podíval do kapitoly Nejčastější chyby... , tak také ne. Kdybyste postupoval podle kapitoly Správa softwaru, tak byste ty problémy také neměl. Všude v GUI se operuje se správcem balíčků a nikde se samotnými balíčky, toto je naprosto do očí bijící. Pakliže čekáte, že vám v prvním odstavci vysvětlím všechno, jste vedle jak ta jedle. To prostě nejde. I vámi navrhovaný postup má dost nevýhod a byl by dost složitě strukturován - minimálně je zde problém s různým obsahem lokálních zdrojů v edicích, případně přímo chybějící zdroje v edicích Mini/One atd. Když se nad tím zamyslíte, není to vůbec jednoduché.
Navíc - kdybyste tu knihu opravdu četl, napsal byste podobné připomínky přímo mně. Vyzývám k tomu mnohokrát v celémé textu. Stěžovat si v r. 2009 na manuál k 10.1 s tím, že je to špatně vysvětleno bez toho, abyste to napsal autorovi, je celkem mimo mísu.
>Toto byl můj osobní pohled, ale soudě podle mnoha začátečníků s MDV v různých diskuzích (i autora blogpostu), nejsem sám. Byl bych rád, kdyby tam bylo velké tučné upozornění "Dej si Control Centrum → Software → Hledat a řeš to, až budeš se systémem trochu umět".
Drtivá většina dotázaných se do knihy nikdy ani nepodívala a to není moje chyba. Stejné problémy má openSUSE, Ubuntu a další distra, které jsou pro lamy "první na ráně" stačí se podívat po internetových diskusích. Můžeme učit lidi LInux, ale nemůžeme je učit číst, na to je tady základní škola.
Knihu Mandriva Linux mám, čtu v ni a řídím se tou knihou. Jinak to, co v článku píšu o závislostech, i o jiných věcech, to nepíšu kvůli tomu, že bych si na něco stěžoval. To píšu jako úvahu o Linuxu, takové nápady, přičemž počítám s tím, že možná nebodou uskutečnitelné.
Jak jste poznal, že mám Mandriva Linux? Ještě jsem to tady nestačil napsat.
Jenže to co chceš je utopie. Znamenalo by to zastavit veškerý vývoj a zůstat na jednom místě. Furt se bude něco měnit, zanikat a vznikat něco nového. Je to tzv. mravenčí vývoj, kdy se snaží najít tu nejlepší cestu ke kýženému cíly (ke kostce cukru co se mravenců týče . Spousta cestiček je slepých, ale ta nejsilnější (kudy projde nejvíc mravenců a nechají tak po sobě nejsilnější pachovou stopu) vede ke kostce cukru
.
Kostka cukru pro Linuxáky = Debian
nejsilnější pachovou stopu = DebianAha, už vím, odkud jde ten příšerný smrad!
Ne, ten vane z tvých gentooáckých nohou!
Jestli jsem to dobře pochopil, statické linkování znamená, že balík obsahuje v sobě všechny potřebné knihovny a už na ničem není ten balík závislý, zatímco dynamické linkování znamená, že ten balík potřebné knihovny v sobě nemá a tím pádem potřebuje závislosti. Jaktože staticky linkovaný program má větší spotřebu paměti, než ten samý program, ale dynamicky linkovaný? Nebo nemá?
Jinak - Windows jsem měl asi 7 měsíců, když jsem s počítačem začínal a protože mi Windows nevyhovoval, přešel jsem na Linux, se kterým jsem spokojený a mám ten Linux už rok a půl. Na Windows ani za nic nepřejdu. Instalační medium Windows (týká se to nových Windows) nejsou soběstačné. K tomu, abych ten Windows nainstaloval a mohl neomezeně používat, mi nestačí jenom instalační CD / DVD, ale musím se ještě obracet po telefonu nebo internetu na někoho, kdo poskytuje aktiovaci. Windows se totíž musí aktivovat a to je na nic. Windows tím pádem nemůžu považovat za úplný, protože pokaždé, když ho potřebujeme nainstalovat nebo přeinstalovat, musíme se naněkoho obracet.
statické linkování znamená, že balík obsahuje v sobě všechny potřebné knihovny a už na ničem není ten balík závislý, zatímco dynamické linkování znamená, že ten balík potřebné knihovny v sobě nemá a tím pádem potřebuje závislosti. Jaktože staticky linkovaný program má větší spotřebu paměti, než ten samý program, ale dynamicky linkovaný? Nebo nemá?
Staticke linkovanie znamena, ze spustitelny subor v sebe obsahuje vsetky knizce, ktore pouziva a tym, nepouziva tie, ktore su uz v systeme, takze ich nemoze zdielat ani v pamati.
Dynamicke linkovanie znamena, ze spustitelny subor neobsahuje ziadne kniznice, ktore potrebuje k svojmu behu, tie sa nacitaju v prebehu spustenia procesu, teda program pouziva kniznice, ktore su v systeme a moze ich zdielat v pamati
http://cs.wikipedia.org/wiki/Knihovna_(programov%C3%A1n%C3%AD)
jenom proto, že jsou vývojáři neschopný to přepsat do WinAPI/GDI/GDI+/DirectDraw a jánevimcoještěChtěl jsi říct proto, že vývojáři mají tisíc a jednu důležitější věc na práci, než to přepisovat pro API jakési minoritní platformy, že?
#ifdef WIN32 #include <windows.h> ... HWND okno; okno = CreateWindowEx( WS_EX_CLIENTEDGE, g_szClassName, "The title of my window", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 240, 120, NULL, NULL, hInstance, NULL); ... #endif #ifdef GTK2 #include <gtk/gtk.h> ... GtkWidget *okno; okno = gtk_window_new (GTK_WINDOW_TOPLEVEL); ... #endifto by bylo prasení nad prasení.
okno = gtk_window_new (GTK_WINDOW_TOPLEVEL);Toho udělá výrazně víc s dosti menším viditelným výsledkem než
okno = CreateWindowEx( WS_EX_CLIENTEDGE, g_szClassName, "The title of my window", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 240, 120, NULL, NULL, hInstance, NULL);Nehledě na to, že ta gtk funkce stejně na Windows volá tu WinAPI funkci, takže je to ve výsledku v GTK o dosti pomalejší. BTW vy stále pořád voláte na Windows ty zastaralé ANSI funkce?
/−−−−−+−−−+−−−\ | | | | +−−|−−−+−|−+−|−+−|−+ | x.so | a | b | c | +−−−−−−+−−−+−−−+−−−+ /−−−−−\ /−−−−−\ /−−−−−\ | | | | | | +−−|−−−+−|−+−−|−−−+−|−+−−|−−−+−|−+ | x.so | a | x.so | b | x.so | c | +−−−−−−+−−−+−−−−−−+−−−+−−−−−−+−−−+Sorry, nemám po ruce žádný editor obrázků.
Tiez sa priklanam k tomuto obrazku, keby nebol na to *.PNG obrazku napis "Staticke linkovani", tak by som si myslel, ze ide o dynamicke linkovanie, pricom kazda aplikacia si zo sebou nesie vlastne so/dll knznice a tie prednostne pouziva pred knizcami v systeme
Kazdopadne u oboch odcenujem kreativitu pri diskusii :)
Neni mi jasne proc so jsou jako dynamicky linkovane a dll staticky. Windows i Linux pouzivaji staticke i dynamicke linkovani.
... sebou taha dll knihovny které skladuje u sebe ...To není statické linkování. Předjde se bordelu v nekompatibilitě verzí, stejnojmenných knihoven apod.
A když se mi to nelíbí, tak tu knihovnu u prvního programu smažu, knihovnu u druhého dám do PATH a fungují oba se stejnou. To je fakt problém.Jardo, super. To je fakt standardní postup
Windows 95/98 jsem totiž nikdy nepoužíval. (Teda pár dní jo, abych zjistil, že používat nejdou.) Dokonce jsem oželel i podporu USB ve Windows, než bych je používal. Spásou byly W2k.Ty jsi do roku 2000 používal Windows 3.11?
kecyBlbost. žščřcjďťň ... a navíc keci jako hradi
zatím co na lin má většina app knihovny v /lib teda doufamVětšina jich má v
/usr/lib
Predstav si, ze mas spustenych treba 10 programu v Qt.
Pri dynamickem linkovani se ti nactou Qt knihovny jednou a 10 programu je vyuziva.
A ted si predstav tvuj pristup. 10 staticky linkovanych programu.
Qt knihovny jsou zadratovane v kazdem z nich -> jsou nacteny 10x -> 10x vetsi spotreba pameti. Kapis?
Na to jsem nepomyslel, ale už mi to došlo.
Pri dynamickem linkovani se ti nactou Qt knihovny jednou a 10 programu je vyuziva.To není tak úplně pravda, už jsem to tu někde psal.
to je nejaka provokace nebo to autor mysli vazne?
Považuji tyto názory za naprosto zcestné.
ad druhy balíků) Sjednotit formát balíků by bylo zbytečné a přineslo by to jen další ochuzení možnosti výběru. Copak není dobře, že si uživatel může vybrat, co mu vyhovuje? A když připočtu to, že 99.9prcnt balíků hledám stejně v repositářích, tak mi již tento návrh přijde mimo úplně. Vždyť přeci GNU/Linux JE o tom "vybrat si". V tomhle je síla celého Linuxu a výhoda oproti jiným systémům. Když mi něco nevyhovuje, mám mnohdy i desítky alternativ.
ad závislosti) To snad nemyslíte ani vážně. Proč implementovat do balíku danou věc znovu a znovu, když už je implementována jinde. Dovedete si představit, jak by repositáře a obecně operační systémy GNU/Linux naboptnaly (nemluvě o zvýšené bugové hrozbě)? Vždyť přeci v tom je krása repositářů. Nemusím danou věc mít v kompu tisíckrát. Repositář je jako organismus. Jednotlivé orgány jsou různě propojené a symbioticky spolupracují. Vyjde nová verze jedne součásti a, pokud jde všechno dobře, celý organismus pracuje zase o něco lépe. To by bylo s tou vaší filosofií nemožné...
alpha, amd64, arm, armel, hppa, ia64, mips, mipsel, powerpc, sparc, s390A to jsou jenom ty majoritní. Pak je tu třeba M68k/Coldfire, SuperH, ppc64, několik dalších vesměs nekompatibilních odnoží ARMu, little-endian PowerPC…
Když chci nainstalovat v Linuxu nějaký program, ovladač nebo něco jiného, musím si vybrat balík, který je určený pro stejný Linux, který používám. To znamená dodržet to, jestli náš Linux potřebuje balíky RPM, DEB, a jiné,Na to je jednoduché riešenie - vymysli balíčkovací systém, ktorý bude ... um, tak nič
Vzhledem k tomu, že distribucí Linuxu existuje hodně a každá distribuce má hodně verzí, tak je vlastně malý zlomek balíků, které jsou vhodné právě pro můj Linux. Vhodné balíky se dají sehnat většinou jenom ve zdrojich softwaru určených pro moji distribuci a verzi Linuxu.Nie je to v priamom spore s:
... stahovat úplně všechny zdroje software pro můj Linux a to kompletně celé a pro obě architektury. Trvalo to celé dny.?
Já tohle docela chápu. Používám celkem exotickou distribuci, a software instaluju téměř výhradně ze zdrojáků. Problém je že ani tohle není dokonale standardizované, takže narážím neustále na chyby a problémy, když třeba protestuje pkgconfig nebo je někde nastaven špatný prefix.. Jaká to frustrace při pohledu na vedle sedícího windowsáka, který prostě nakliká v prohlížeči stránky autora, stáhne statickou binárku pro Win32 a frčí.. A já se mezitím hrabu v undefined referencies a podobně
Ani u takového Ubuntu to není sranda, protože když například chci novější verzi toho a toho programu (vím že tam opravili nějaký bug), tak musím pomalu měnit repozitáře protože ten malinký balík závisí na jiné verzi X, glibc, Qt a vůbec... a při změně repozitáře je lepší rovnou systém upgradovat.. což by bylo fajn kdyby to spolehlivě fungovalo, po pár haváriích a nadávkách na Linux ze strany BFU (kterým vadí i malé změny!) jsem toho nechal ..
Suma sumárum, chápu co autor zápisku chce. Jde mu o to aby mohl zadat do vyhledávače název programu, a na stránkách autora si přímo od zdroje opatřit univerzální balíček (proč asi stahuju zdrojáky? ) v nejnovější dostupné verzi, který může uložit na DVD až bude systém přeinstalovávat.. To je styl práce s Windows a má to jisté výhody oproti distribučnímu "cloud computingu" v podobě repozitářů, které vyžadují přístup k internetu a nezaručují že balík bude aktualizovaný, nebo naopak nebude v příliš "experimentální" nové verzi plné bugů.
... stahovat úplně všechny zdroje software pro můj Linux a to kompletně celé a pro obě architektury. Trvalo to celé dny.To mi hlava nebere. Pokud se autor nechystá trávit několik let na opuštěném ostrově (který najdou jenom ti, kdo vědí, kde je
.ko
o celkové velikosti několik MB. Kde je tam to peklo závislostí a kompatibilita balíčků? (To byla jen uštěpačná terminologická poznámka. Když si stěžuji na závislosti a balíčky, musím uvést konkrétní příklady distribucí, kterých se to týká.)Otázka tedy je: Jste si jistý, že opravdu navrhujete zlepšení? Já si tím jistý nejsem. Pro někoho je to zlepšení, pro někoho jiného třeba nesmysl. Pokud chcete něco hodně speciálního (například koexistenci 32-bit a 64-bit binárek), nezbude vám než navrhnout a vytvořit vlastní distribuci. A počítat s tím, že například na Itaniu nebo na Intel-32 bude taková distribuce k ničemu, protože výhody zmizí a zůstanou jen nevýhody.
Vzdy je nejaka zavislost. A to i ve window$ Napr. pro konfiguracni rozhrani ATI grafiky potrebujete nainstalit hafo desitek megabyjtu aplikace NET framework. Nektere veci potrebuji Javu apod.
Rozhodne bych nerekl ze je to v prostredi OSS slozitejsi. A nebo pouzivate spatne zdroje v repozitarich ci neco podobneho.
Říkáte si, že chodím do blogu naříkat, že mám problémy s Linuxem. Přitom tomu tak není. Smysl tohoto článku je jiný, než nějaké přiblblé skuhrání a stěžování si na Linux. Jak to vlastně začalo. Když jsem přešel na Linux, naučil jsem se základy Linuxu, naučil jsem se správně používat balíčkovací systém a zdroje softwaru. Nějakou dobu jsem to normálně používal, jako všichni. Problém s tím nemám. Potom jsem však začal uvažovat a napadaly mě různé nápady, co by mohlo být na Linuxu jiné a co by se mohlo vylepšit. Připadaly mi ty myšlenky zajímavé, až jsem se nakonec rozhodl z toho udělat článek a napsat do blogu. Myslel jsem si, že to hodně lidí bude zajímat a že rozpoutám zajímavou diskuzi o tom, jestli ty moje nápady jsou uskutečnitelné nebo nejsou, proč to je možné nebo není, proč má ten Linux takové vlastnosti a podobně. Místo toho vypadám jak nemehlo, které neumí Linux vůbec používat a má problémy a chodí si do blogu stěžovat.
Když jsem dopsal tento článek a odeslal, všichni si pomysleli, že s Linuxem zřejmě neumím zacházet, že mám problémy a že jsem si přišel do blogu postěžovat a naříkat. Přitom to není pravda. Účel toho článku byl jiný. Měla to být úvaha a ne nějaké přiblblé naříkání a skuhrání, že se mi v Linuxu nedaří. Chtěl jsem se podělit se zajimavou myšlenkou a ne skučet tady.
Z mojeho článku jste si zřejmě pomysleli, že neumím správně používat Linux a že jsem neschopný. Vypadá to, jako bych si způsobil svoji neschopnosti hodně problémů, a že si nevím rady a že jsem si přišel do blogu postěžovat, jak mě ten Linux neposlouchá. Přitom to není pravda. Takový idiot zase nejsem, abych neovládal balíčkovací systém, nástroje z rodiny urpmi a další věci. Základy Linuxu snad ještě ovládám. Nejsem debil. Knihu Mandriva Linux jsem si koupil hned zkraje a mám ji přečtenou. Takže zase takový kretén nejsem, abych si nic nepřečetl o distribuci, kterou používám.
Asi ten článek nemělo cenu psát. Jsem zklamaný a mrzí mě, že jsem ten článek do blogu psal. Škoda času, zbytečné namáhání. Asi udělám nejlépe, když ten článek z blogu odstraním. Zlikviduji ho a jaký byl.
>Linux je free - takáto podpora neexistuje (ani sa nedá kúpiť).
Nesouhlasím. Znám dost subjektů, které se poskytováním podpory pro Linux živí.
>Fajn, je jedna výnimka. Pán Bíbr s jeho knižkami s pribalenými inštalačkami. Aj tam chýba kapitola "Ako ďalej bez internetu".
Nesouhlasím - špatná diagnóza. Kdo si to nainstaluje a stačí mu to, je za vodou, protože na těch médiích jsou obvykle kompletní zdroje toho, co může normální člověk potřebovat. Komu to nestačí, bez Internetu se stejně neobejde - stejně jako v případě Windows.
>Bez internetu je to blbý nepoužiteľný soft bez dokumentácie. Má drivery, ale nemá firmware(internet). Má prehrávače, ale nemá kodeky(internet). Má aplikácie ale nemá dokumentáciu(internet).
Nesouhlasím. Prodám dost produktů a mám dost odezvy od uživatelů na to, abych byl přesvědček o opaku. Možná je to tím, že dodávám produkty s dokumentací a kodeky :).
Článek nemaž, viz moje patička
Diskuse na tohle téma smysl mají. Sice se většinou dojde k závěru, že současné balíčkovací systémy jsou lepší než něco jiného (statické nezávislé balíčky), ale kritický názor se vždycky hodí, aspoň pro kontrolu
Asi jsi se špatně vyjádřil, protože tě lidi nepochopili.
Pokud ti jde jen o velké množství duplicitních dat, tak ti doporučím distribuci založenou na zdrojových kódech: Gentoo, LFS, SourceMage. Jednou stažené zdrojové kódy lze použít i jinde. (Teoreticky by mělo být možné stejně pracovat i s binární distribucí, ale tam asi zdrojové balíky nejsou „občané první kategorie“.) Samozřejmě metadata (popisy balíků, závislosti, kompilační skripty) se budou pro každou distribuci lišit, ale obecně jsou malá (třeba v Gentoo představuje kompletní repozitář asi 150 komprimovaných MB) a jejich inkrementální aktualizace také není prostorově náročná.
Pokud ti jde i o tato metadata, to už tu řešili ostatní. V podstatě evoluce si našla takové řešení, tak asi bude lokálně nejvýhodnější. Srovnávat to se systémem „inteligentně navrženým“ úzkou skupinkou lidí v jedné firmě (Windows, Mac OS X) je poněkud nevhodné. (Navíc jejich vzájemná nekompatibilita je záměrná. Srovnejte sdílení uživatelského prostoru mezi *BSD, Linuxem a Solarisem.) Že ale různorodost má svoji cenu, si distributoři uvědomují. Vzpomeňme všechna *buntu, nebo vztah Fedora-RedHat-CentOS.
mirec@kofola ~ $ ls -lh /usr/portage.sqfs -rw-r--r-- 1 root root 65M júl 1 17:55 /usr/portage.sqfs mirec@kofola ~ $ layman -l * enlightenment [Subversion] (svn://overlays.gentoo.org/dev/vapier/enlightenment ) * jokey [Subversion] (svn://overlays.gentoo.org/dev/jokey/trunk ) * kde-testing [Git ] (git://git.overlays.gentoo.org/proj/kde.git ) * qutim-overlay [Subversion] (http://qutim-overlay.googlecode.com/svn/trunk ) * sunrise [Subversion] (svn://overlays.gentoo.org/proj/sunrise/reviewed/ )S množstvom overalyov má u mňa portage 65 MB.
Balíčkovací systémy v moderních distribucích jsou jednou z nějvětších výhod Linuxu. Porovnej:
aptitude install nazev-programu
a mám nainstalováno. Můžu samozřejmě použít i GUI správce balíčků, kde vyhledám program a kliknu pro instalaci – práce je vždy stejná pro všechny programy → nemusím se učit nic specifického a pracovat s nejednotným rozhraním.S aktualizací programu je to ještě viditelnější:
aptitude safe-upgrade
a mám aktuální verze všech svých programů.Chci mít v systému víc verzí jednoho programu a přepínat se mezi nimi?
update-alternatives --config java
a vyberu si verzi Javy, kterou chci používat.
To o čem píšeš – univerzální balíčky nezávislé na distribuci a bez závislostí – je možné už teď, nikdo ti nebrání, abys Linux tímto stylem používal, ale myslím, že se tím o hodně ochuzuješ a přiděláváš si zbytečnou práci.
Člověk používá buď nějakou velkou distribuci jako je (k)ubuntu nebo suse – pro ně balíčky jsou a většinou je člověk ani nemusí shánět, protože jsou přímo v repositářích dané distribuce. Nebo touží po nějakých specialitách a má méně rozšířenou distribuci – ale do toho jde sám s vědomím, že se autor nějakého programu nemusel obtěžovat s výrobou balíčku pro jeho distro.
O nevýhodnosti staticky linkovaných programů (bez závislostí) tu bylo napsáno mnoho, tak to už nebudu opakovat.
Linux (a open source) má v mnoha ohledech jinou filosofii než Windows, pokud někdo po přechodu chce používat počítač starým způsobem, moc si nepomůže, Linux mu nepřinese moc výhod a spíš z něj bude rozčarovaný… chce to přijmout ten jiný způsob práce a zbavit se starého stylu myšlení, na který byl člověk zvyklý z Windows.
Ještě bych doplnil několik poznámek, které se možná nebudou všem líbit, ale i s těmito názory bych se chtěl podělit.
Já mám připojení k internetu, nemám s tím problém. Přesto mi příjde jako nevýhoda, že připojení k internetu je nutné, pokud chceme Linux pořádně používat. Nejvíce se na tom podílí to, že jednotlivé balíky na sobě závisí. Bez internetu je těžké získat nějaký program: Šel bych k někomu, kdo má internet, tam si stáhnu, buď z repozitářů nebo od jinud, požedovaný balík a vypálím. Donesu to domů a zjistím, že mi chybí závislé balíky. Zapíšu si je a půjdu si je stáhnout. Donesu to domů a zjistím, že mi zase chybí závislé balíky k těm závislým. A tak je to dokola. Když mám ale internet připojený na svůj počítač, stačí si nastavit zdroje softwaru a pomocí balíčkovače nebo příkazů můžu stahovat nebo instalovat balíky a všechny závislosti se budou vybírat automaticky.
To, že balíky na sobě závisí, způsobuje zmatek, aspoň se mi to zdá.
O te kompatibilitě balíčků. Nemyslel jsem, aby existoval jenom jeden Linux a aby bylo všechno stejné; to by nebyl žádný výběr. Já jsem tím myslel, že mám třeba nějakou distribuci Linuxu a do toho můžu instalovat a spouštět jakékoliv balíčky: Nejen ty, co jsou určené pro moji distribuci Linuxu a verzi Linuxu, a nejen z mojich repozitářů. Prostě si můžu vzít jakýkoliv balík, stači dodržet jenom to, jestli potřebuji RPM, DEB a podobně, a jestli potřebuji 32 bitů nebo 64 bitů a to je všechno. Prostě všechno pasuje, je to zaměnitelné. Tím by se zvýšily možnosti, od kud a co můžu instalovat. A kdyby náhodou po nějaké době zanikly na internetu naše repozitáře, nic se neděje, můžu používat jakékoliv jiné repozitáře.
Jsem si vědom toho, že kterékoliv z těch návrhů, které popisuji, možná nebudou uskutečnitelné.
Ještě něco k pálení balíčků: Stáhnul jsem si a vypálil všechny balíčky, které se mi můžou hodit. Nevadí, že časem zastarají, aspoň něco mám. Ta jistota mi za to stojí. Jinak - nepotřebuji mít za každou cenu nejnovější verzi softwaru. Třeba si pořídím nějaký program a zjistím, že mi vyhovuje. Umí všechno, co potřebuji, mají všechny vlastnosti takové, jaké potřebuji. Potom nemám důvod takový program nahrazovat novější verzi, někdy dokonce to nahrazení novější verzi může být na škodu: Co když ta novější verze programu nebude umět něco z toho, co uměl ten můj. Nebo co když v te novější verzi bude změněná některá vlastnost tak, jak mi nevyhovuje. Všechny tyto změny nemusí být způsobené chybou v programu, může jít i o úmyslnou úpravu programu, která někomu může vyhovovat a někomu ne, každý má totíž jiné požadavky.
Jsem si vědom toho, že kterékoliv z těch návrhů, které popisuji, možná nebudou uskutečnitelné.
No veru neviem si predstaviť ako by mohli byť povedzme RPM a DEB kompatibilné keď používajú úplne iné závislosti (RPM závislosti na úrovni jednotlivých súborov, DEB na úrovni balíkov). Teoreticky RPM boli navrhnuté ako univerzálne a prenositeľné.
Mimochodom zaujímavé riešenie pre userov by mohlo byť interaktívne webové rozhranie pre prácu s repozitármi (niečo, že vyberiem balíky, ktoré chcem a vyhodí k tomu aj závislosti a môžem všetko stiahnúť naraz).
Nejvíce se na tom podílí to, že jednotlivé balíky na sobě závisí. Bez internetu je těžké získat nějaký program
Tohle už dnes není pravda. Dnes je v repozitáři tolik balíků, že instalující stroj musí mít na své straně cache. Tudíž problém se redukuje na dva kroky: aktualizovat cache, zeptat se balíčkovacího systému na chybějící balíky. Já takhle vydržuji jedno Gentoo, které Internet nikdy nevidělo, a problém mi to nečiní.
Musel jsem článek upravit, protože mu nešlo dobře rozumět.
Já jsem si stahoval a vypaloval úplně všechny balíky z repozitářů kvůli tomu: Protože jediné místo na internetu, od kud můžu stahovat nebo instalovat software pro Linux, jsou repozitáře určené k Linuxu, který používám. Nemůžu použít repozitáře od jiných distribucí, nemůžu použít repozitáře ani pro jinak starou verzi svoje distribuce; jiné místa na internetu, než repozitáře taky zpravidla nemůžu použít pro stahování softwaru. To znamená, že pro mě jsou použitelné jenom ty jediné repozitáře, žádná náhrada není. A protože nevím, jestli ty moje repozitáře někdy z internetu nezmizí, nevím, jak to chodí, musel jsem se podle toho zařídit, abych předešel takové situaci: Co když jednou z internetu ty moje repozitáře zmizí a já už nebudu mít odkud stahovat nebo instalovat balíky, protože náhrada k těm repozitářům není. Proto jsem si zavčasu stáhnul z těch repozitářů všechny softwary, které se mi můžou někdy hodit. Možná, že jsem si nemusel stahovat repozitáře úplně celé, možná stačily jenom ty programy, které se mi hodí plus závislosti, ale to bych musel znát úplně všechny linuxové programy a jejich názvy. Všechno však znát nemůžu. To, že balíky se jmenují podle názvů programů, vím; ale nemůžu znát úplně všechny programy - jak se jmenují a k čemu jsou, takové věci se dozvídám průběžně. Proto jsem si pro jistotu stáhnul a vypálil úplně všechny balíky.
Jiná situace by byla, kdybych nemusel být omezený jenom na svoje repozitáře; kdybych mohl balíky stahovat nejen z repozitářů pro moji verzi Linuxu a nejen pro moji distribuci Linuxu a třeba i nejen z repozitářů; kdyby stačilo řídit se jenom tím, jestli je ten balík požadovaný druh (jestli RPM, DEB, a jiné; v mojem případě RPM), jestli má požadovaný počet bitů a to je všechno. To by bylo více možností, od kud brát balíky. Potom bych si vůbec nemusel dělat starosti, co když jednou z internetu zmizí moje repozitáře a co když potom nebudu mít od kud brát balíky. Protože ikdyby ty moje repozitáře z internetu někdy zmizely, nic se neděje, protože pořád bych měl od kud tahat balíky. Tím pádem bych nemusel zavčasu stahovat všechno, co se mi může jednou hodit. Stačilo by stáhnout jenom to, co momentálně potřebuji a až později budu něco potřebovat, s tím bych si nedělal starosti, to bych si mohl kdykoliv později stáhnout. Taky o to mi šlo v tom článku.
Nejde mi o to, aby existovala jenom ta distribuce Linuxu, kterou používám, a jiné aby nebyly. To, že distribucí je více, je dobré, ať je z čeho vybírat, ale jde mi o to, aby šly různě kombinovat, které balíky můžu do které distribuce a verze Linuxu instalovat. Nanejvýš by stačilo řídit se tím, jestli potřebujeme RPM, DEB, ..., nebo co, a kolik bitů a to je všechno.
Říkáte, že repozitáře z internetu nemůžou zmizet, pokud nezanikne ta distribuce. Některé distribuce, například Mandriva Linux má dvakrát za rok novou verzi Mandrivy a s ní taky repozitáře pro novou verzi. Pokud repozitáře nezanikají, muselo by se to na internetu hromadit. Až bude třeba Mandriva Linux 2020, bude toho na internetu hodně. Dá se i přesto počítat s tím, že nezmizí z internetu ani repozitáře třeba i pro Mandriva Linux 2006, když už by byly i pro 2020? Mám tomu tak rozumět? Podobně by se to týkalo i dalších distribucí.
Proč bych nepoužíval starý software, pokud by mi fungoval a vyhovoval. Až se svým softwarem přestanu být spokojený, teprve potom ho nahradím něčím jiným. Ale vyhazovat software, který mi vyhovuje, jenom kvůli tomu že je zastaralý, je nesmysl. Proč bych to dělal. Nejdříve jsem si u spousty programů pracně kontroloval, jestli umí všechno, co potřebuji a jestli mají všechny vlastnosti, jaké potřebuji a pracně vybral programy, které mi všechno splnily. Kdybych potom ten program měl vyhodit a nahradit jiným, potom bych musel znovu pracně kontrolovat a vybírat nový program. Mám totíž na většinu programů složité požedavky (Například audioeditor: jestli obsahuje ekvalizér, který, když různě nastavuji, tak ani trochu neposune časově zvukovou vlnu - o tom, proč mi na tom záleží, píšu v článku Jak získat vícepásmový kompresor. Taky hodně dalších požadavků na audioeditor mám. Často i na jiné programy mám hodně složitých požadavků.). Nepotřebuji mít za každou cenu nejnovější verzi softwaru. Třeba si pořídím nějaký program a zjistím, že mi vyhovuje. Umí všechno, co potřebuji, mají všechny vlastnosti takové, jaké potřebuji. Potom nemám důvod takový program nahrazovat novější verzi, někdy dokonce to nahrazení novější verzi může být na škodu: Co když ta novější verze programu nebude umět něco z toho, co uměl ten můj. Nebo co když v te novější verzi bude změněná některá vlastnost tak, jak mi nevyhovuje. Všechny tyto změny nemusí být způsobené chybou v programu, může jít i o úmyslnou úpravu programu, která někomu může vyhovovat a někomu ne, každý má totíž jiné požadavky.
Navíc, já si pro každý program vypisuji všechny postupy a vysvětlení, jak s nimi zacházet - mám hodně složitých sešitů. A kdo to má pořád přepisovat a předělávat, kdybych každou chvíli vyhazoval program a pořizoval si nový. Nejsem blázen. To se opět týká jak aplikací, tak i operačního systému a podobně.
Když vám nevyhovuje Mandriva, která dvakrát do roka má novou verzi, tak si zvolte distribuci, která má podporu mnohem delší.
Víte, i vývojáři mají jenom jedny ruce, takže v pět let starém kódu se nikdo zadarmo pro vaše potěšení hrabat nebude.
Nevím, proč bych měl chtít, aby se vývojáři hrabali v pět let starém kódu. Ten kód je přece hotový.
Mandriva mi vyhovuje. To, že Mandriva dvakrát za rok vydává novou verzi, mi nemusí vadit, protože nemusím všechny verze používat, nemusím pokaždé přecházet na novou verzi.
Jinak o te kompatibilitě taková poznámka: Kdyby to šlo kombinovat tak, že do různých distribucí a verzí distribuce Linuxu můžu používat balíčky a repozitáře, které jsou určené třeba i pro jinou distribuci nebo verzi, měli bychom i další výhodu, protože bychom nemuseli kvůli jedné věci předělávat i ostatní. Příklad: Mám nějakou distribuci a verzi Linuxu a k tomu mám stažené hodně programů pro ten Linux. Potom se rozhodnu, že chci přejít na jinou distribuci nebo verzi Linuxu. Stačilo by vyměnit jenom ten operační systém a programy si můžeme nechat. Zatímco ve skutečnosti by nestačilo vyměnit jenom operační systém, ale museli bychom znovu stáhnout i ty programy, protože jinak by ty balíčky pro tu distribuci a verzi Linuxu nepasovaly. Práce navíc. Jiný příklad: Mám nějakou distribuci a verzi Linuxu. Potom se rozhodnu stáhnout si program, nebo verzi programu, který v repozitářích pro můj Linux není. Stačilo by se podívat do repozitáře pro jiný Linux, od tud to vzít a hotovo. Zatímco ve skutečnosti to není možné, balík pro jiný Linux do mojeho Linuxu nepasuje. Musel bych vyměnit kvůli jednomu balíčku celý operační systém, a pokud jsem měl i nějaké další balíčky, tak i ty bych musel vyměnit. Všechno je práce navíc.
Nevím, proč bych měl chtít, aby se vývojáři hrabali v pět let starém kódu. Ten kód je přece hotový.
Ale není hotový. To že vyhovuje vám, neznamená, že vyhovuje ostatním. Navíc máme chyby (bezpečnostní), kde je to buď a nebo.
Mandriva mi vyhovuje. To, že Mandriva dvakrát za rok vydává novou verzi, mi nemusí vadit, protože nemusím všechny verze používat, nemusím pokaždé přecházet na novou verzi.
Kdo se tu rozčiloval, že mu mažou repozitáře, a tak si je musí zálohovat?
Jinak o te kompatibilitě taková poznámka:
To tu opakujete pořád dokola, ale že verze a závislosti si nevymýšlí distributoři, ale autoři, jste ještě nepochopil a ani jste nenavrhl řešení, jak tohle verzování zrušit.
Dwd, ty jsi ale případ. To myslíš opravdu vážně, takový článek? Já nemám slov. Chvíli jsem ho četl a bavím se. A víš proč? Protože to, co píšeš a taky jak to píšeš, nemá obdoby. To stojí opravdu za to. Nic podobného jsem ještě nečetl.
Nakonec, nikdo ti nebrání v tom, aby jsi svou distribuci Linuxu začal používat stylem jako "běžný operační systém". Stačí, když si doinstaluješ Wine, nějakou novější a kvalitnější verzi a potom všechny aplikace používej zásadně v podobě souborů exe určených pro Windows a spouštěj je přes Wine. Používej aplikace, které jsou určené přímo pro Windows, nebo multiplatformní, ale ty taky používej v podobě windowsáckých exe souborů. Veškeré aplikace můžeš stahovat stejně, jako uživatelé "běžného operačního systému" ze Slunečnice, Stahuj.cz, Instaluj.cz a dalších takových. Úplně se vykašli na repozitáře, když jsou tak hrozné. Taky se můžeš vykašlat na balíčky, když jsou tak strašně nedokonalé, jak píšeš. Trpí samými závislostmi a mají tak špatnou přenesitelnost z jednoho linuxového operačního systému do druhého. U exe souborů ti žádné takové potíže jak s balíčky nehrozí. Budeš sice rarita, pokud budeš linuxovou distribuci používat tímto stylem, co jsem ti poradil, ale hlavně, že budeš konečně spokojený.