Portál AbcLinuxu, 21. května 2025 17:08
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ý.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.