U ovom kratkom vodiču objasnit ću (i naučiti vas) zašto je bolje da sastavite program (recimo Firefox, Vlc, itd.) Iz njegovog izvornog koda, nego da ga preuzmete (iz Software Center, Yumex, Pacman itd.) ) i instalirajte.
Prvo idemo s teorijom:
Što je "sastaviti"?
Kompiliranje je pretvaranje izvornog koda (koda napisanog na određenom programskom jeziku, recimo C, C ++, itd.) U izvršni program za njegovo djelovanje korištenjem procesora za pretvaranje jezika koji se koristi za generiranje koda u binarni i asembler. Često se naziva i ambalažom.
Zašto je bolje "sastaviti"?
Prvo morate znati sljedeće da biste razumjeli zašto. Rečeno na „sirov“ način (jednostavan, ne baš profesionalan, itd.), Svaka rasa (Pentium, Core, Atom, itd.) I njene vrste (Intel, AMD, ARM, itd.) Procesora imaju upute (softver napisan u asembleru koji obrađuju kod) svog modela (Core i7, Core i5, Atom x2, Phantom x8, Arm, itd.), a također imaju i opće upute koje imaju sve te vrste.
Kada preuzimate iz spremišta putem Softverskog centra / apt-get / Yumex / Yum / Pacman / itd., Program koji se automatski instalira naziva se ovaj precompiled za rad na svim mogućim procesorima (Intel i Amd). Budući da se radi o unaprijed kompiliranom programu, gube se one upute tipične za taj specifični model procesora (pomislite da ako su programi poput Firefoxa ili Chromea, koji imaju više od 7 ili 8 milijuna redaka koda, morali staviti sve posebne upute za svaki na tržištu, količina koda bila bi toliko velika da taj program više ne bi bio učinkovit) ne ostavljajući ništa više od općenitih marki svog tvorca (Intel, Amd, Arm).
Kada sami preuzmete, raspakirate i kompajlirate izvorni kod programa, on se sastavlja s određenim uputama programa TU procesor, (što ne znači da neće raditi na stroju s drugim, već samo da će biti optimiziran posebno i isključivo za vaš procesor), oslobađajući i oslobađajući svu snagu koju vaš procesor može dati zahvaljujući svojim specifičnim uputama.
U tehničkim detaljima, ove specifične upute usko su povezane s onim što je poznato kao čipset vaše matične ploče, što je velika glavobolja za one koji imamo Intel kada želimo nadograditi procesor i matičnu ploču.
Iznenadili biste se snazi koja vaša amd atom x2 ili ti Intel Core iznutra, Temeljni 2 duo, i3, itd. sa vašeg starog računala. Sad razumijete li zašto se u svijetu Linuxa puno govori o sastavljanju čuvene jezgre (srca svakog operativnog sustava)? Zamislite ako kompilirate cijeli sustav (grafičko okruženje (Gnome, Kde, itd.), Kernel, najčešće korišteni programi (Firefox, Vlc, Chrome, Wine, itd.), Posebno za vaše računalo) svu brzinu i razinu optimizacije koju biste imali.
Ovo načelo kompilacije za dobivanje koda optimiziranog posebno za vaš stroj je onaj koji koriste distro-i poput Gentoo-a i derivata (o čemu neću sada govoriti, koristim Fedoru minimalno sa kompilacijom Gnome 3, kernela i drugih programa) gdje se sustav, vaša ažuriranja i vaši programi uvijek prevode.
Protiv sastavljanja:
Već sam objasnio sve prednosti, ali kao i sve u svemiru ima i jednu protiv.
U slučaju kompilacije jesu;
- Vrijeme potrebno za ovo (Firefox s i7 4790K (bez overkloka, jer sam jako loš s naponima) traje 3 minute, Gnome Shell (traka ništa drugo) s Gnome-Control-Centerom trebalo mi je oko 2 minute, oba su sastavljena u u isto vrijeme u Fedori. Ali na stroju s manje moćnim procesorom ovaj put može biti nerazmjerno dugo).
- Procesor maksimalno koristi 100% snage sa svim svojim jezgrama, tako da potrošnja i toplina naglo rastu (uzmite to u obzir ako imate overclocking ili ako je posebno prijenosno računalo), pa je prikladno pripremiti mate ili kavu za tu priliku.
- Možda vam nedostaje knjižnica (alat) koja koristi program kako ne bi pogriješila u kompilaciji. Općenito, sve distribucije imaju svoje pakete ili skupove kako bi to izbjegli (oni su prepuni raznih knjižnica i drugih stvari koje jezgru omogućuju da tijekom procesa komunicira kako treba s procesorom).
Kako mogu kompajlirati?
Ovdje govorim o sastavljanju programa za normalnu upotrebu, a ne jezgre.
aptitude instalirati bitne dh-make devscripts fakeroot debhelper debian-policy ccache dh-autoreconf autotools-dev build-dep ardor
Stavio sam debian-policy, ali ako vaš distro nije Debian i ako vam se pojavi pogreška da takav paket ne postoji, jednostavno ga zanemarite. Moram pojasniti da se dugo nisam služio tim sustavima, pa ako paket više nije u spremištima, nemojte raditi probleme.
Za Fedoru:
sudo yum -y instaliraj zaglavlja jezgrezrno-razvojsudo yum groupinstall "Alati za razvoj"sudo yum groupinstall "Razvojne knjižnice"
Ovdje se moram ispričati za one koji koriste Arch (ne poznajem dobro distro) i OpenSuse, jer ne znam te distro niti odgovarajuće pakete da bih izveo ispravnu kompilaciju (i nisam potkrijepio ono što je na mreži, pa ne znam rade li za to dvoje).
Sad kad imate sve potrebne zahtjeve, trebate samo preuzeti izvorni kod programa koji želite kompajlirati, prema ekstenziji raspakirajte ga pomoću terminala (ne brinite, ostavit ću vam naredbe) i kad idete u mapu (uvijek s terminalom), radite isto:
Ako imate mogućnost da se konfigurirate za odabir komponenata i ostalih:
./configure
Zatim upišete:
make
I na kraju da instalirate program na vaš linux:
make install
Naredbe za raspakiranje pomoću terminala (datoteka se raspakira u mapi u kojoj se datoteka nalazi):
.Tar datoteke (katran) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Pakiranje | tar cvf file.tar / file / * Raspakirajte | tar xvf file.tar Pogledaj sadržaj | tar tvf datoteka.tar
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .tar.gz - .tar.z - .tgz (katran sa gzipom ) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Pakiranje i patentni zatvarač | tar czvf file.tar.gz / file / Raspakirajte i raspakirajte | tar xzvf file.tar.gz Prikaz sadržaja (nije izvučen) | katran tzvf datoteka.tar.gz
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .gz (gzip) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Compress | gzip -q datoteka (datoteka se komprimira i preimenuje u "file.gz") Raspakirajte | gzip -d file.gz (Datoteka ga raspakuje i ostavlja kao "datoteku"). Napomena: gzip komprimira samo datoteke, a ne direktorije
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .bz2 (bzip2) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Compress | bzip2 datoteka | datoteka bunzip2 (datoteka se komprimira i preimenuje u "file.bz2") Raspakirajte | bzip2 -d datoteka.bz2 | bunzip2 file.bz2 (datoteka ga raspakuje i ostavlja kao "datoteku") Napomena: bzip2 komprimira samo datoteke, a ne direktorije
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .tar.bz2 (katran s bzip2) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Compress | tar -c datoteke | bzip2> file.tar.bz2 Raspakirajte | bzip2 -dc datoteka.tar.bz2 | katran -xv | tar jvxf file.tar.bz2 (najnovije verzije tar-a) Prikaz sadržaja | bzip2 -dc datoteka.tar.bz2 | katran -tv
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .zip (zip) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Compress | zip file.zip / mayo / archives Raspakirajte | raspakirajte datoteku.zip Pogledajte sadržaj | raspakirajte -v datoteku.zip
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .rar (rar) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Compress | rar -a file.rar / svibanj / arhiva Raspakirajte | rar -x file.rar Pogledaj sadržaj | rar -v datoteka.rar | rar -l datoteka.rar
I to je sve. Pozdrav iz Buenos Airesa, Argentina. Sretni blagdani i Nova godina! :)
Problem sa sastavljanjem je taj što ne radi uvijek prvi put i zamorniji je
Problem s kompajliranjem jest da, ako nemate staro i ograničeno računalo, poboljšanja neće biti primjetna ... dobro, možda je to na računalu s intenzivnom upotrebom opcija, ali za većinu korisnika to je samo dosadan proces.
Mislim da je to srž stvari. Je li poboljšanje performansi koje će se primijetiti pri sastavljanju paketa toliko važno da bi trebalo vremena i gnjavaže oko ovog zadatka u drugi plan?
Isto ako imate i7 compile, prikladno je jer je brži i računam da djeluje nešto bolje. Sada s računalom s Intel atomom to nije zgodno, osim ako vam zaista nije potrebna dodatna snaga koju kompajliranje daje, ali za sastavljanje programa s manje moćnim procesorom mogu potrajati sati.
Potpuno se slažem, dogodilo mi se da sastavim i nakon nekog vremena saznam da vam nedostaje knjižnica, pratite je i morate se ponovno suočiti s postupkom ... Rijetko kada sve uspije u prvom pokušaju ... xD
¡Muy interesante!
Ako kompajlirate program, kako naknadno rade ažuriranja? Jesu li automatski ili moramo biti svjesni je li izašla nova verzija?
Morate ga ažurirati ručno, odnosno sastaviti najnoviju verziju, to je još jedan, recimo "nedostatak", za koji također čini nešto zamorno
Kako ažuriranja ne postoje, zapravo Linux distribucije i njihovi različiti načini pakiranja softvera i odgovarajući upravitelji paketa uklanjaju neugodnosti ponovnog prevođenja za svako novo ažuriranje (i rješavanja ovisnosti).
Pozdrav.
Ako ga kompajlirate preuzimanjem izvornog koda s bilo koje stranice, tada to morate učiniti ručno i naučiti kako ga instalirati jer nisu sve instalirane na isti način.
Ako imate Gentoo ili neku distro distribuciju s priključcima, to činite iz spremišta gotovo automatski.
U Gentoou se vaš upravitelj paketa, Portage, brine o ažuriranjima i ovisnostima; Ne znam za ostale distro. Naravno, svako ažuriranje očito uključuje ponovno sastavljanje.
Bilo je vrijeme kad sam sastavio sve što sam mogao. Tada sam se umorio, posebno zbog vremena koje sam morao posvetiti radnom stroju (45 minuta za jezgru, 10 minuta za krom ...) i zbog vremena koje sam proveo u rješavanju problema koji su se pojavili u hodu. Uz to, osobno nisam našao porast performansi, imao sam osjećaj da je sve isto. Iz tih razloga sada koristim sve prethodno sastavljeno, sve je trenutno i bez sukoba. Iako sam tada puno naučio, želio sam koristiti gentoo 🙂
Čak, i to je nešto što sam malo vidio, može se kompilirati iz sustava poput apt. Dodajte zastavicu gradnje u apt-source i voila. Naravno, prije toga, instaliranje potrebnih paketa za provođenje kompilacija, inače ne funkcionira ... iako je to izravniji oblik kompilacije i koji uključuje manje koraka, jer je tek prvi put kada zauzima instalaciju paketa i sljedeće, ispunjene ovisnosti i paket kao takav.
Pozdrav.
Ima funkcionalnost apt-build, iako mislim da ne kompajlira ovisnosti, već instalira unaprijed sastavljene binarne datoteke.
Od prvog trenutka kad sam vidio naslov, nisam mogao ne pomisliti isto, a nakon što sam pročitao cijeli izvrsni članak, imam na umu ideju oko tisuću puta, Gentoo ... Gentoo, gdje si?
sastavljanje je prekrasno, moći uživati u određenim značajkama i koristiti ih neprocjenjivo je, ali vrijeme i "trenutne potrebe" neoprostive su, jer se ne primjenjuju.
Možda nam treba nešto u sredini, gdje ni knjižnice ni detalji u promjeni verzije neće izgubiti toliko vremena. Vidjet ćemo što će se tada dogoditi, ili ako se zaista primijenimo na sastavljanje na samoj sposobnosti, uprmi i zypper koje smo već instalirali.
3 minute firefox! .... Jeste li mislili 30?
Ovo mi je trebalo neko vrijeme na računalu s 8350G fx4.5, koristim gentoo.
$ genlop -t firefox | rep -n3
Sub 6. prosinca 20:00:00 2014 >>> www-client / firefox-34.0.5-r1
vrijeme spajanja: 16 minuta i 35 sekundi
Ove se upute specifične za svaki procesor nazivaju mnemotehnikom i fizički su implementirane unutar mikroprocesora, one čine strojni jezik, dakle sastavljaju se tako da program može raditi na mnogim vrstama mikroprocesora, ako ili ako moraju biti ograničeni na najmanja količina uobičajenih mnemotehnika podržanih u svim tim mikroprocesorima ... trošeći stvarni kapacitet najaktuelnijih i najsnažnijih mikroprocesora.
To rade tvrtke i gnu / linux binarni distributeri.
Meni je s Intelom i7 4790K s 18 GB RAM-a trebalo ono što sam već rekao
Razumijem da je mikro koji imate superiorniji, ali razlika je bezdana, istina mora biti savana tom brzinom. Možda je riječ o nečemu što je povezano s ovisnostima ili USE-ima, koji su isti kao opcije konfiguriranja prilikom ručne kompilacije.
Mali detalj kojeg ste izbjegli rekavši 18 GB Rama osim i7, nemaju svi taj stroj, ali mogli biste napraviti benchmarking kako bi razlika bila primjetna, jer je teorija lijepa, ali da vidimo hoće li to nadoknaditi.
Još jedan sjajan detalj, procesor je Intel, stoga ima najbolju pomičnu zarez neovisno o modelu, vrlo relevantnu značajku za izvođenje ove vrste procesa
Istina, sastavljanje je zamorno. Ali puno toga naučite negirajući Makefile, knjižnice itd. To je nešto što je dobro napraviti i nekoliko puta. Koristim sve prethodno sastavljeno iz istog razloga koji je naveo Tanrax.
Pozdrav iz Argentine!
Problem koji obično imam pri pokušaju kompajliranja potpuno novih verzija programa uvijek je zbog ovisnosti, ponekad ih je potrebno kompilirati (da biste došli do najnovijih verzija), a zatim razmislite o mogućnosti kompajliranja onoga što želite.
Problemi s PUTOM i ZASTAVE stvari su koje me još uvijek sprječavaju da želim sve kompilirati (iako to obično radim kako mogu). Jedan od alata s kojim se obično savjetujem da bih mogao sastaviti ovisnosti je sljedeći web - http://www.linuxfromscratch.org/ -
#LinuxFromScratch je projekt koji pruža upute "korak po korak" za sastavljanje izvornog koda koji trebate koristiti u sustavu .. (98% onoga što mi je potrebno za kompajliranje postigao sam vodeći me odavde i postupno učenje).
Kao dodatnu točku mislim da bi sastavljanje sustava iz 0 bilo zanimljivo, posebno za razvojna okruženja ili poslužitelje, između ostalog za koje kažemo da "obično nisu toliko promjenjivi" kao osobno računalo u koje neprestano sve instaliramo i mijenjamo (to je moje gledište), uz činjenicu da je minimalna izvedba koja se postiže u ovoj vrsti korištenja aplikacija vrlo važna.
To su točke o kojima se u današnje vrijeme govori vrlo malo i samo "učenjaci" uspijevaju, ali zanimljivo je dati ovakvim stvarima vodiče koji su im potrebni, tako da svaki dan pronađemo više ljudi koji doprinose pomoći različitim zajednicama u kojima sudjeluju i ne samo da Gnu / Linux ostaje na vremenu zbog slabe izvedbe suradnika, iako iako je do sada "radio na ovaj način" nije baš zdravo imati samo krajnje korisnike.
Dopustite mi mali dodatak. Da biste postigli prednosti koje ovdje predstavljate, morate pravilno konfigurirati dobro poznati make.conf. Tamo su naznačene obitelji procesora i oznake kompilacije. Slično tome, tamo možete odrediti broj jezgri koje će se koristiti tijekom kompilacije. Kad koristite sve jezgre mikrofona, vrijeme sastavljanja drastično se smanjuje.
pozdravi
Vrlo dobar članak. Volio bih i primjer ili bih želio izravno, post o tome kako kompajlirati u archlinuxu ili kako koristiti AUR. Sretna Nova godina od Mendoze.
Davno ... Uvijek sam kompajlirao jezgru, ali vrlo je zamorno čekati 40min: / u svakom slučaju ... Već dugo nisam kompajlirao ništa osim za upravljačke programe za video (samo za posebne konfiguracije) .
Članak je vrlo zanimljiv, ali ne gospodine, pakiranje i kompajliranje nije isto;) ..
Vrlo dobar post. Slažem se s sastavljanjem određenih programa, ali ponekad je to pomalo zamorno pa je stroju potreban taj proces. Ali osim toga, puno se nauči, posebno kada su potrebne knjižnice ili paketi.
Mislim da vam je za Archlinux potreban sljedeći paket: base-devel
pacman -S baza-razvoj
Informacije su vrlo dobre, ali istina je da ih nije potrebno kompajlirati, ako ste standardni korisnik i samo želite da nešto tako radi, nemojte to ni dirati. Dosadno je kompajlirati, uvijek, uvijek kažem da vam nedostaje knjižnica, nađete jedan ili drugi problem, recite mi da sastavim minecraft poslužitelj tako da sve bude što bolje i da vam uzmem vremena ... osim što svaki put kad izađe ažuriranje ili zakrpa ili bilo što drugo, počnite ponovno sastavljati xd
Točno, kompajliranje je za vrlo specifične programe koji su vam potrebni za optimalnu upotrebu, jer je sastavljanje svega, i kao što kažete, uvijek postoje nadogradnje, uglavnom valjane distro verzije, dosadno. Preporučio bih samo lts kernel.
Danas gotovo svi procesori koje ljudi koriste podržavaju iste upute, stoga je sastavljanje povoljno samo kada je u pitanju jezgra i u sustavu kao što je poslužitelj, a to je, očito kad nema prethodno kompiliranih paketa, sve ostalo uzaludno vrijeme.
Dobar doprinos, pokušat ću vidjeti kako to ide, do sada većinu vremena (gotovo uvijek) instaliram iz spremišta ...
Malo opažanje: Opcije naredbe rar nisu skriptirane i bunzip2 se samo dekomprimira.
Najviše što sam sastavio bio je kernel za debian wheezy i trebalo mi je oko 2 sata (imam amd e450 1.6 ghz dvojezgreni procesor) i upravo zato ne instaliram gentoo, vrijeme za kompajliranje i preuzimanje cijelog sustava trebalo bi mi oko 18 sati i da ako nemam problema, istina je da je bolje kompilirati, ali većinu vremena potrebno je previše i mislim da se to ne isplati. Imate pojačanje brzine, ali to nije puno i mislim da to ne opravdava svo uloženo vrijeme. Iako ću jednog dana imati računalo s procesorom kao što je vaš, pokušat ću instalirati gentoo 😛
Narod:
Bez namjere plamena ili bilo čega drugog, lijenici smatraju prirodnim sastavljati, generirati binarnu datoteku, instalirati je s odgovarajućim upraviteljem paketa (koji očito rješava ovisnosti, slapt-get, swaret, slackyd i / ili nekoliko drugih), sa svime optimiziranim za naše tim i kao da ništa, što nije ništa o čemu se može pisati kući ili kvantna fizika.
Gledanje DVD-a bez posrtanja na P3 750MHz s 192MB RAM-a nije ni nemoguće ni teško postići preko Slackware-a. Potvrđujem, i to je brže od sastavljanja Gentooa. Ali nije isto, koristim i Gentoo.
Razlika između hakera i potrošača je u tome što potrošač kaže "Volio bih da to tako funkcionira", a haker "Imam odvijač i nekoliko minuta" - Rael Dornfest
Postoji li doista značajno poboljšanje performansi?
Sa zadnjom generacijom i7 i 18 Gb RAM-a, kako primijetite razliku između kompiliranih paketa i binarnih datoteka?
Oduvijek sam mrzio prikladnost samokompajlirajućih paketa, ali mislim da je u trenutnim radnim okruženjima vrlo složeno održavati ga, posebno zbog složenosti ovisnosti, kontinuiranih ažuriranja i ogromne ovisnosti o neslobodnim izvori., kao u slučaju vlasničkih pokretača, koji nesumnjivo utječu na performanse puno više od bilo kojeg aspekta koji se može kompilirati ...
pozdravi
Uzimajući u obzir da ga Gnome 3 samo kompajlira (imena ću reći sirovo budući da se imena paketa ne sjećam): ljuska (traka), gnome-control-center (kompletan, sa svojim ovisnostima, itd.), Aplet za vrijeme i oko 2 ili 3 ovisnosti da ljuska radi. Očito je da je ljuska zahtijevala više ovisnosti da bi sve njezine funkcije radile, ali to me dovelo do kompajliranja GDM-a, popravio sam to modificirajući ga s GConfom nakon što je ljuska sastavljena.
Sada kada se prijavim (putem terminala), okruženju treba puno manje vremena za učitavanje nego kad je bilo instalirano prekompilirano. Bacanje vremena u zrak, na unaprijed sastavljeni način, mislim da je trebalo oko 3 ili 4 sekunde da se učita školjka (s otprilike 5 u kojima je prikazana pozadina, nikada nisam shvatio zašto je trebalo toliko dugo, čini mi se da je zbog vozača s GT 630) i kompajliran čim sam unio lozinku X org se pokreće i okruženje se učitava (s predopterećenjem i prelinkom učinio sam ih puno bržim, čini mi se da je to zato što su proslijeđeni predmemorija; https://www.google.com.ar/search?q=preload+y+prelink+fedora&ie=utf-8&oe=utf-8&gws_rd=cr&ei=iXaqVPykO4qYNpbTgdAP )
Činjenica da i7 ima ss4 i ss3 upute, koje se zanemaruju generičkim gradnjama iz različitih distro-a (debian grade za 486, ubuntu za 686) može vam dati ideju kada se troši hardver pokušavajući obuhvatiti 20 godina star procesor - možda hvala na podršci mom starom pentiumu mmx-. Ako su vam potrebni "vlasnički upravljački programi", kao što ste spomenuli, jezgra pruža mogućnost učitavanja određenog firmwarea u vrijeme sastavljanja. Nema više čudnih problema s xorgom.
Hvala na informacijama, uvijek je dobro naučiti (ili ponovno naučiti) (:
Debian rado Gentoo 🙂
http://crysol.org/es/node/699
Još jedan nedostatak je taj što je kompilacija putem terminala namijenjena korisnicima koji znaju ili već imaju određeno znanje o Linuxu. Postoji li grafički alat koji ne upravlja kompilacijom, instalacijom i ažuriranjem programa već grafički?
Izračunajte da Linux to radi, to je gentoo s grafičkim alatima spremnim za izradu. U Phoronixu to obično preporučuju.
Korisnik sam linuxa, ponekad kad želim instalirati program iz spremišta, instaliraju se stare verzije programa, jednostavno zato što nove nisu sastavljene za dotični distro, mislim da je bitno znati kako kompajlirati, čak i više kad se koriste rijetki distros.
Sve što piše u postu je u redu i ne sumnjam da je istina, ali razlika u izvedbi između instalacije binarnog paketa i sastavljanja sebe neprimjetna je za korisnika.
A nedostaci sastavljanja su mnogi i ako su jasno uočljivi korisniku. Stoga osobno koračam prema kompajliranju.
Tamo gdje sam najviše primijetio performanse prilikom sastavljanja jezgre, to je bilo na prijenosnom računalu s procesorom AMD 64. Promjena između tvorničkog i kompiliranog jezgra bila je brutalna.
Trenutno na svom sustavu imam tvorničku jezgru, jer kako ovdje puno govore, bilo je vrijeme kada sam kompajlirao gotovo sve i umorio sam se.
Trenutno sastavljam samo neke vitalno važne programe, poput upotrebe malog poslužitelja ili igranja s emulatorima. Nedavno sam objavio post o tome kako sastaviti mame verziju. Ovi se programi obično prikazuju kad je optimiziran za vaš sustav.
Samo trebam isprobati taj gentoo distro i vidjeti kako ide izvedba.
Zaboravio sam dodati, za ljude kojima treba dugo vremena za sastavljanje jezgre, više od 30 minuta, postoji nekoliko trikova kako bi to učinili za manje vremena.
Jedan od tih trikova je da vam se čini samo sastavljanje modula vaše opreme, maksimalno, možda najviše 70 modula, a ako dodamo podršku iptables-a sa svim njegovim zahtjevima, mislim da bi se povećala na 300 modula. Hajde, to je puno bolje od sastavljanja 3000-ak modula, brojka koja se trenutno izvodi ako se moduli jezgre kompajliraju onako kako dolaze iz tvornice ili kako oni kažu, vanilija.
Program koji će vam pomoći da znate koje module kernel trenutno prepoznaje na vašem sustavu je "localmodconfig" ili upotrebom ove skripte "streamline_config.pl" koja se nalazi unutar direktorija izvornog jezgra, na putu "/ scripts / kconfig /»
Naravno, pripazite da ste spojili sve svoje USB uređaje, jer jednom kad kernel prepozna sve vaše module, samo je pitanje kompilacije.
Jezgra će biti vrlo lagana i osjetit ćete određenu svježinu u sustavu, kao i ubrzati pokretanje i isključivanje sustava.
Pozdrav.
Život nije tako lak! postoje programi koji koriste cmake ili druge stvari, a ažuriranje i kompajliranje svega traje. A ako imate takav CPU, kakva će vam razlika biti?
Problem s kompajliranjem je taj što se neki programi koje instaliramo tom metodom tada ne deinstaliraju ili pri tome stvaraju pogreške, pa ih ne možemo deinstalirati.
Morate spremiti mapu s kompiliranim izvorima, kada želite deinstalirati, sve što morate učiniti je otići u mapu izvora i s terminala kao root izvršiti:
# napravi deinstalaciju
Naravno, paketi sastavljeni ručno prema zadanim postavkama u svakoj ozbiljnoj distro distribuciji instaliraju se odvojeno, to jest u / usr / local / bin, a ne u / usr / bin gdje ih upravitelj paketa distro distribuira prema zadanim postavkama, tako. isprepleteno je.
Članak pokreće nekoliko zanimljivih stvari, ali mu nedostaju užasne kvalitete u smislu i logičkoj strukturi.
«U izvršnom programu za svoj rad korištenjem PROCESORA za pretvorbu jezika koji se koristi za generiranje koda u binarni i asembler. Često se naziva i ambalažom. "
Lažno. kompajler se zapravo koristi, on je zadužen za prosljeđivanje uputa određenog programskog jezika odgovarajućem montažnom jeziku i zatim njihovo prevođenje u strojni jezik.
Asemblerski jezik je mnemotehnika koja odražava skupinu uputa koje se nalaze u registrima čipa.
«Kad sami preuzmete, dekomprimirate i prevedete izvorni kod programa, on se sastavlja s određenim uputama VAŠEG procesora»
Prilikom sastavljanja programa to će se jednostavno izvršiti s uputama zajedničkim arhitekturi.Ovisi o svakom korisniku da aktivira odgovarajuće zastavice kompajlera kako bi optimizirao program za određeni procesor.
U vezi s onim što komentirate o sastavljanju jezgre:
Kada kompajlirate jezgru, želite aktivirati ili deaktivirati značajke koje mogu ili ne moraju biti korisne u određeno vrijeme, što se neće nužno odraziti na odnos veličine i brzine u izvršnom opterećenju.
Kada se pozivate na sljedeći odjeljak:
dh-make devscripts fakeroot debhelper debian-policy ccache dh-autoreconf autotools-dev build-dep
Ti programi nisu bitni za sastavljanje programa. Kao što ste pokušavali reći na početku, količina programskih jezika sprječava vas da sa sigurnošću znate koje alate morate instalirati da biste mogli kompajlirati programe u gnu / linux ... to možete znati samo savjetovanjem s dokumentaciju programa koji želite provesti. Programi koje spominjete koriste se za DEBIJANIZIRANJE i upakiranje u taj format programa koji može biti sastavljen ili ne.
U članku postoje i druga pitanja koja se pokazuju pomalo dvosmislena u načinu rješavanja. Bilo bi teško obratiti im se svima.
Predlažem da autor članka pregleda što je više moguće i pozivam na bolju kontrolu kvalitete publikacija.
Čovječe, nije ni to.
Članak nije za časopis Science, to je jednostavno uvodni članak i vjerujem da je u terminima u kojima je napisan dovoljno detaljan da korisnik početnik razumije ključne pojmove.
Ako postanemo akademski, tri četvrtine onoga što se objavljuje na internetu ne bi vrijedilo apsolutno ništa.
Ne budimo toliko puristički ... nemoguće je 100% složiti se s člankom, ali ne možemo kontinuirano ocjenjivati "tehničku" kvalitetu, kao da ocjenjujemo doktorat.
Moja puna podrška autoru ovog članka
zanimljiv članak
Ljubiteljima slobode uvijek je dobro da unar umjesto rara slobodno otpakuju rare. ( https://packages.debian.org/jessie/unar )
Pogodila sam bug s ovim problemom ... Počela sam pretraživati u googleu, ali ne mogu pronaći tutorial za kompajliranje firefoxa pod ubunto 14.04 amd64 bita ... u suprotnom, večeras dobivam kernel sa sljedećim tutorialom: http://www.redeszone.net/2014/11/28/como-instalar-el-ultimo-kernel-de-linux-en-ubuntu-14-04-lts/
dobar članak, puno učim. ali ovo bih koristio samo za neki određeni program koji troši puno resursa, poput video uređivača, na primjer. Pozdrav.
Između ovog članka i članka iz Gentooa koji su objavili prije nekoliko dana, napastuju me da instaliram Gentoo na svoje računalo. Prije mnogo godina koristio sam Sabayon, koji je olakšao čitav postupak instalacije, ali zadržao bazu koja se treba kompajlirati iz izvora. Iskreno, ne sjećam se da sam primijetio bilo kakvu razliku u performansama svog laptopa (u to vrijeme imao sam krug) sa Sabayonom ili Ubuntuom, pa ne znam bih li se bacio na sav posao brisanja svog Archa koji jako dobro funkcionira da ga instalirate. Nisam siguran da se nekoliko milisekundi po programu isplati.
Od 4 računala s gentooom koja sam instalirao i ažurirao, dodan je prijenosnik koji je imao archlinux .... Systemd me umorio, već sam ga morao koristiti sa startxom, jer su u zadnjem ažuriranju obje jezgre pucale na 85% upotrebe, bez ičega , Istraživao sam i čini se da se nešto promijenilo u systemd-u kako bi vitki poludjeli i pojeli mikroprocesor.
Dosta, bilo je dovoljno s lukom ... predugo se držao, više od dvije godine, sad instaliram gentoo, idem na update za stage3, za večeras ide otvoreni okvir s krumpirićima.
Dobar članak, natjera me da kompajliram Qupzillu, ali s sempronom će trebati dana, pa, ne znam toliko dugo, ali svejedno ostavlja loš dojam.
Još jedan nedostatak kompilacije je taj da je, kada postoji ažuriranje, potrebno ponovno sastaviti i instalirati ažuriranje, što je problem s obzirom na to da neki programi imaju kratke razvojne cikluse i za njih se ažuriranja izdaju često, 2 do 3 mjeseca, sa svim to slučajnom korisniku dosadi, a stalni korisnik troši puno vremena kako bi održavao svoj sustav ažurnim.
Želio bih znati koje se aplikacije više preporučuju za sastavljanje. prema svojoj korisnosti, učestalosti ažuriranja i poboljšanju performansi.
To je apsurdno, ako se trebate sastaviti, koristite pogrešnu distribuciju. Jedini razlog za kompajliranje je dodavanje mogućnosti otklanjanja pogrešaka kako bi vas usporili u zamjenu za bolje ispravljanje grešaka drugih.
Vaš sustav nije spor jer mu treba -O3, spor je jer postoji previše programa koji čita na disk ili slika previše na ekranu.
Moja preporuka: umjesto mikro-optimizacije našeg sustava, radimo kao zajednica na poboljšanju softvera koji svi imamo.
Niste objasnili kako optimizirati kompilaciju, na primjer u Gentoo USE opcije koriste se za optimizaciju generiranog koda, također morate navesti procesor itd. Kako se to radi u UBUNTU / Debian ili Arch?, Zanimljiv članak.
Dobro!
U nedostatku čitanja komentara ispod, imam novaka u Linuxu:
Koristim Fedoru 20, već imam instalirano poprilično stvari, na primjer, preglednik Firefox, da bih ga kompajlirao za svoj stroj, mogu li to jednostavno učiniti? To jest, pod kodom i kompajlirati, ili prvo moram eliminirati program koji sam već preuzeo za sastavljanje novog ...
Isto je i s Linux jezgrom i slično ...
Možda tražim nešto apsurdno, ali već kažem da sam poprilično novak u ozbiljnim Linux stvarima, hahaha
Pozdrav!
Mislim da kernel nije potreban, ali za svaki kernel morate stvoriti unos u GRUB-u, s firefoxom ne znam je li poželjno imati 2 firefoxa, osobno više volim imati 1 samo kernel i 1 samo firefox
Jedino što sam u svom životu sastavio je verzija u razvoju Musiquea, jako mi se sviđa ta aplikacija, vrijedila je toliko vremena koliko je trebalo za taj proces. Za krajnjeg korisnika poput mene, kad sam završio, osjećao sam se ispunjenim.
Pozdrav, izvrstan blog.
Pozdrav, koristim Slackware i sastavljanje aplikacija je najnormalnija stvar na svijetu.
Sustav se instalira iz već prekompajliranog ISO-a, a predkompajliranih aplikacija koje možete koristiti iz službenog spremišta malo je, iako ako želite možete preuzeti izvorni kod sustava (i originalne skripte s kojima je sastavljen cijeli distro ) i sami ga sastavite, kako pretpostavljam da Gentoo radi.
Međutim, projekt SlackBuilds nudi skripte (slično službenom distro-u) za mnoge programe trećih strana, u koje preuzimate izvorni kod onoga što želite instalirati i pretvorite ga u tgz ili txz paket koji se kasnije instalira s njim. službeni upravitelj paketa distroa. Stoga je prednost u tome što izbjegavate korištenje naredbi za konfiguriranje, izradu, izvršavanje instalacije, a paket možete ažurirati, ponovno instalirati ili ukloniti kao i bilo koji drugi i vrlo jednostavno.
Loša je strana što se ovisnosti ne rješavaju automatski u Slackware-u kao u drugim distro-ovima, tako da prvo morate sastaviti potrebne ovisnosti, a aplikaciju koju želite instalirati posljednju. Programi koje koristim kompilirani su između ostalog LibreOffice, Texmaker, Spyder, Qt5, QtCreator, VLC, Wine, GRASS, QGis. Ovisno o aplikaciji i njezinim zahtjevima, sastavljanje i instalacija mogu trajati od 5 minuta do nekoliko sati. Ali ako želite, možete pronaći i koristiti unaprijed sastavljeni paket kako biste uštedjeli vrijeme.
Nisam imao vremena provjeriti postoji li velika razlika između prevedenih i prekompajliranih paketa, ali moj je sustav vrlo stabilan. Ali mislim da barem u mom laptopu nema velike razlike jer nije toliko moćan, ima i3 procesor i 4 GB RAM-a.
Pozdrav i puno sreće u sastavljanju.
Trenutno koristim Funtoo, da budem iskren, ne vidim nikakvu razliku u performansama između sastavljanja programa ili instaliranja prethodno kompiliranog, radim to isključivo u obrazovne svrhe, ali ako postoje razlike između sastavljanja jezgre i nečinjenja, Da. Kad sam koristio debian i htio kompajlirati nešto, koristio sam sljedeću sekvencu:
. / Konfiguracija
Napravite -j3 (broj jezgri + 1)
Stranac
Koristio sam alíen jer stvara binarnu datoteku kompajliranog programa i tako je možete instalirati na svoj sustav kao bilo koju binarnu datoteku, pa ako želite deinstalirati, možete jednostavno koristiti synaptic ili drugi upravitelj paketa, to je prednost stvaranja paket i instaliranje paketa kao takvog, umjesto da radite "make install"
Vidim poboljšanje, barem kod velikih i teških paketa, na primjer Libreofficeu u Funtoou treba puno manje vremena za učitavanje nego u Debianu, isto mi se dogodilo s VLC-om ili s mpv i MKV FullHD i multi-audio datotekama, opterećenje je mnogo brže.
Još jedan koji je također prošao kroz promjenu je Firefox, u Debianu posjedovanje 10 ili 15 kartica s mojim računalom postaje mučenje, ali s Funtoo-om uspio sam imati do 30 otvorenih i nastavlja kao da ništa, a potrošnja ovna je mnogo manja i manja Teži se zamrzavanju JS datoteka, mislim da to više ovisi o kontekstu kako se izvršavaju određeni zadaci i programi.
Problem je u tome što kad ga prekompajliramo, pretvaramo bilo koji linux distro u sirovu kopiju prozora
Više nego u spektakularnom povećanju performansi, vidim prednost u mogućnosti sastavljanja paketa s komponentama koje netko želi: na primjer, ako nemate pisač, možete naznačiti da paketi s podrškom za CUPS nisu sastavljeni -paketi koje koriste CUPS, očito, ako kompilirate Hunspell sa ili bez CUPS-a, to neće biti važno - samo - barem u Gentoo-u - naznačeno u datoteci make.conf, gdje su sve mogućnosti za izgradnju paketa centralizirane - - šalice "; ako koristite KDE5 ili Plazmu 5, kako je sada nazivaju, možete navesti oznake "-kde", "-qt4", koje su bile valjane oznake za KDE 4, ali nepotrebne u KDE 5 i aplikacije prenesene na novu radnu površinu, "-gnome", "-Gtk", i tako dalje s bilo kojom komponentom za koju znate da vam nije potrebna. Ako iz nekog razloga treba određeni program, recimo GTK, tada u datoteci koja se naziva package.use možete naznačiti da koristi GTK, na primjer za Pidgin s istom oznakom, ali bez znaka minus, to jest, " gtk »:« Net-im / pidgin gtk ».
Na taj način sustav postiže nekoliko stotina megabajta lakših, manjih i učinkovitijih binarnih datoteka, bez nepotrebnog koda. Prošao sam put od Ubuntua do Gentooa kroz Opensuse, Kubuntu, Debian, Arch, Chakra ili KaOS, a Gentoo je najbrži sustav koji sam imao, a i dalje imam isti Core 2 Duo koji sam imao prije 7 godina. Naravno, kompilacije ostavljam za noć, jer sastavljanje QT5, na primjer, traje nekoliko sati. Ako postavite parametar "finoće" za Portage u make.conf, možete instalirati pakete ili ažurirati dok nastavljate raditi sa strojem i teško primijetite puno usporavanje, iako se očito vrijeme kompilacije povećava; ali hajde, s stavljanjem na instalaciju ili ažuriranje kad odem na večeru, i ako je potrebno, ostavljajući da radi preko noći, moje staro računalo radi bolje od I3 moje djevojke s Kubuntuom.
Sljedeći sve važniji aspekt je da je prilikom kompajliranja iz izvornih datoteka sigurnost da je paket koji instaliramo izvorni, da njime nisu manipulirale treće strane, gotovo potpuna. Mislim da Debian implementira sustav provjere gradnje koji će jamčiti nešto više od toga što pretkompilacija koju smo instalirali zapravo dolazi iz izvornog izvora, ali nikada neće biti toliko sigurnosti kad je taj paket kompiliran na našem računalu s našim postavljanjem.
Po mom mišljenju, s modernim procesorom, a ne s čegrtaljkom poput moje, hehe, i, ako želimo ubrzati proces, s 8 GB RAM-a kako bismo mogli montirati / var / tmp - privremenu mapu za koju Portage koristi kompilacija - u RAM-u, koji će uvijek biti brži od tvrdog diska ili SSD-a, danas ne vidim puno smisla koristiti unaprijed prevedene pakete. Ako na mom Firefox računalu treba oko 40 minuta za sastavljanje, koliko vremena treba I5 ili I7 koji je trenutno na tržištu, 5 minuta, čak i manje? Govorim o izvornom firefoxu, a ne o firefox-bin-u, koji je predkompajlirani binarni paket koji se može instalirati na Gentoo ako imate vrlo spor stroj - postoji nekoliko velikih paketa koji su već pripremljeni iz ovog razloga, to je nije obavezno kompilirati sve -. Ne mogu govoriti jer mi djevojka ne dopušta da petljam po njezinu računalu, hehe, a moje ide tako dobro da ne osjećam potrebu za obnavljanjem, ali ako sam u pravu, mislim da vrijedi izgubiti nekoliko minuta sastavljanja kako bi se sustav izradio po mjeri. Prilagođeniji i prilagođeniji našem stroju, mislim da se ništa ne može postići a da se već nisu ulazile u te Linux metode od nule, Linux od nule, a mislim da je to već rezervirano za informatičare ili vrlo napredne poznavatelje Linuxa.
Pozdrav.
Vrlo dobro!
jedna stvar ne postoji «Amd Atom x2»
ni existira je zaštitni znak intel
pozdravi