Ahoj, me osobne na linuxu (vsechny ditribuce) stve jedna vec, balickovaci system je zajimave vec to jiste, ale dostat do linuxu novou verzi programu je nadlidsky ukol, hloupy pripklad, vyjde nova verze programu, ale do balickovaciho systemu se nikdy nedostane, takze co mam delat, kompilovat ze zdroje, tohle vam nikdo delat nebude, uz vidim jak si muj tata neco preklada a pritom stajnout msi nebo exe instalator dokaze, proc to nemuze byt tak jednoduche, proc tohle jeste nedokazal komunita vyresit? Je to naprosto zakladni vec a pritom si uvedomte, ze v balickovacim systemu nikdy neni aktualni verze software.
Tohle je velka neprijemnost pro obycejne lidi.
Tak to nejsi sam koho to sere, a nejen obycejne lidi ale i vyvojare.
Ja jsem 25% spoluautor prohlizece Twibright Links ktery je snad na vsech linuxovych distribucich...
Odpoved na otazku "proc to tak je?" je podle me nasledujici: protoze vyvojari opensource maji jen slabou motivaci, aby neco dobre fungovalo pro koncoveho uzivatele. Tak jako tak, dostanou zaplaceno vetsinou 0,-. Pak aby neco fungovalo dobre, vyzaduje to casto dost znacne casove i nervove investice.
A pak je tu faktor socialni komplexity - s 500 distribucemi, X balickovacimi systemy a decentralizovanym systemem "rizeni" (spis bych rek bordelu), a to vswechno se jeste neustale meni pod rukama, je to casto i nemozne.
No, nekdo ten program prelozit musi, takze:
1) Bud novou verzi programu prelozi rovnou autor a pripravi balicek pro distribuci a da si ho do sveho soukromeho repositare, z ktereho ho kazdy snadno muze nainstalovat
2) Nebo to udela maintainer balicku v ramci unstable nebo backports a da ho do oficialniho repositare
3) Pokud se neaplikuje 1) nebo 2), tak holt uzivateli nezbyva nez si to prelozit sam.
A ze to je zakladni vec? Linux pouzivam radu let a pouzivane programy instalovane mimo distribuci bych napocital na prstech. BFU potrebuje, aby mu programy dobre fungovaly (coz vetsinou splnuje stable verze z distribuce), a ne to, aby mel posledni verzi s nejakou cool feature, kterou stejne pouzije tak 1 % uzivatelu daneho programu.
Taky jsem si ze začátku nemohl zvyknout, ale co se klonů Debianu týče, tak s .deb balíčky jde vše snadno i když je stáhnete přímo od autora. Ostatně ani v situaci, kdy tomu tak není, není důvod zoufat, spousta lidí dělá instalační skripty, které se po spuštění chovají jako klasický win instalátor a co se kompilace ze zdrojových kódů týče, tak "svatou trojici" ./configure, make, make install zvládne napsat do příkazového řádku jako root snad téměř každý. S většími složitostmi jsem se při instalaci setkal jen výjmečně a u pokročilejších záležitostí, které běžný uživatel zpravidla neřeší.
"svatou trojici" ./configure, make, make install zvládne napsat do příkazového řádku jako root snad téměř každý - to zvládne, ale co pak? Prošla vám někdy kompilace staženého zdrojáku na první pokus? Protože Linux běžně nepoužívám, tak nekompiluji tak často, ale ještě se mi nestalo, že by to bylo bez problému.
Kompilacia je dobra, ak si potrebujem pridat featuru do programu alebo narychlo opravit bug. To sa u mensieho programu zvlada mozno za desat minut.
U Windowsackeho programu som raz opravoval nejaky vzdialene vyuzitelny buffer overflow a bolo to ovela neprijemnejsie. Bolo treba najst, kde sa nachadza problematicka instrukcia a spravne ju osetrit. Po oprave som aj tak nevedel, co ma ta funkcia spravne vracat a ci to nebude padat zase inde. Vysledok - jednoducha praca zabrala jeden a pol dna.
„Prošla vám někdy kompilace staženého zdrojáku na první pokus?“
Pokud jsem předtím četl README a doinstaloval závislosti, tak velmi často. Nehledě na to, že se nad samotné zdrojáky dá postavit tenká vrstva ve formě Gentoo či OpenEmbedded ebuildu, ale ve skutečnosti málokdo potřebuje reálně instalovat ze zdrojových kódů a tudíž to málokdo ocení.
Souhlasím. Kompilovat jsem potřeboval několikrát. A skoro nikdy to nebylo jen o tom napsat "svatou trojici". Readme jsem také pokaždé četl. A můžu říct, že v mnoha případech jsem byl neúspěšný a vzdal jsem to. V jiných případech to šlo. Ale strašákem pro BFU jako já je to oprávněně.
Právě o to jde, že v dnešní době, kdy je spousta věcí v systému nainstalovaná defaultně, tak u spousty věcí už to funguje skutečně jen po napsání těchhle tří příkazů. Existují samozřejmě také složitější programy, u kterých není vše úplně perfektně vychytané při konfiguraci, ale toto se zpravidla netýká běžného uživatele. Navíc já Linux běžně používám a věřte mi, taky si nevzpomínám, že bych něco nějak často kompiloval. A co se "složitějších" kompilací týče, tak tam se zpravidla jednalo "jen" o nedořešené závislosti, což někdy nebývá příjemné, ale stále je to o stejném postupu (search -> download -> ./configure -> make -> make install). Navíc je tento postup dnes potřebný skutečně pouze výjimečně, protože dnes je balíček nebo instalační skript skoro pro všechno.
Na Gentoo mi to až takový problém nedělá. Ale předtím jsem musel přijmout fakt, že pro velké (až neomezené) množství různých HW platforem není praktické distribuovat binárky.
Kdo nemá zájem se starat o kompilaci a řešit případnou nekompatibilitu, ten musí spoléhat na jiné, kteří se o to postarají a tudíž používat verze, které jsou pro jeho systém připravené. Já osobně to považuju za dobrý způsob.
Neříkám, že to nejde nijak vylepšit. Samozřejmě by bylo fajn mít pro koncové aplikace nějaké standardizované prostředí a mít kompilaci plně automatizovanou. Jsou k tomu různé cesty, ale pokud nemá dodavatel aplikace chuť dodávat binární balíky pro jednotlivé architektury, bude dodávat buď zdrojový kód nebo nějakou formu mezikódu.
Takhle se to teď řeší hodně na windows, kde se velká část aplikací dělá za pomoci nástrojů, jež jsou schopné generovat multiplatformní kód. Možná by nebylo od věci, kdyby se ISV buď naučili používat stejnou nebo podobnou metodu i pro linuxové distribuce. Není to zase tak složité.