Në këtë udhëzues të vogël unë do të shpjegoj (dhe do t'ju mësoj) pse është më mirë që të përpiloni një program (thoni Firefox, Vlc, etj.) Nga kodi i tij burimor, sesa ta shkarkoni atë (nga The Software Center, Yumex, Pacman, etj) dhe instaloj
Së pari shkojmë me teorinë:
Çfarë është "përpilimi"?
Hartimi po transformon kodin burimor (kodi i shkruar në një gjuhë të caktuar programimi, të themi C, C ++, etj.) Në një program të ekzekutueshëm për funksionimin e tij përmes përdorimit të procesorit për të kthyer gjuhën e përdorur për të gjeneruar kodin në binar dhe montues . Shpesh quhet edhe paketim.
Pse është më mirë të "përpilosh"?
Së pari duhet të dini sa më poshtë për të kuptuar pse. Thënë në një mënyrë «të papërpunuar» (e thjeshtë, jo shumë profesionale, etj.), Secila garë (Pentium, Core, Atom, etj) dhe speciet e saj (Intel, AMD, ARM, etj.) Të procesorit kanë udhëzime (softueri i shkruar në asamble përpunon kodin) e modelit të tyre (Core i7, Core i5, Atom x2, Phantom x8, Arm, etj.) dhe gjithashtu kanë udhëzime të përgjithshme që kanë të gjithë llojet e tyre.
Kur shkarkoni nga depot përmes Software Center / apt-get / Yumex / Yum / Pacman / etj, një program që instalohet automatikisht thotë se kjo precompiled për funksionimin e tij në të gjithë procesorët e mundshëm (Intel dhe Amd). Meqenëse është një program i parapërgatitur, ato udhëzime tipike për atë model specifik të procesorit humbasin (mendoni se nëse një program si Firefox ose Chrome, të cilët kanë më shumë se 7 ose 8 milion rreshta kod, ata duhet të vendosnin të gjitha udhëzimet specifike për secilin procesor në treg, sasia e kodit do të ishte aq e madhe sa që ai program nuk do të ishte më efikas) duke mos lënë asgjë më shumë sesa ato të përgjithshme të markës së tij krijuese (Intel, Amd, Arm).
Kur shkarkoni, dekompresoni dhe përpiloni vetë kodin burimor të një programi, ai përpilohet me udhëzimet specifike të TU procesor, (gjë që nuk do të thotë se nuk do të funksionojë në një makinë me një tjetër, vetëm se do të optimizohet specifikisht dhe thjesht për procesorin tuaj), duke lëshuar dhe lëshuar të gjithë fuqinë që procesori juaj është i aftë të falënderojë udhëzimet e tij specifike.
Në detaje më teknike, këto udhëzime specifike janë të lidhura ngushtë me atë që njihet si chipset i pllakës tuaj amë, i cili është dhimbja e madhe e kokës për ne që kemi Intel kur duam të azhurnojmë procesorin dhe pllakën amë.
Ju do të habiteni me fuqinë tuaj amd atom x2 ose ti Intel Core Brenda, Core 2 Duo, i3, etj nga PC-ja juaj e vjetër. Tani e kuptoni pse flitet shumë në botën Linux për përpilimin e Kernel-it të famshëm (zemra e çdo sistemi operativ)? Imagjinoni nëse përpiloni një sistem të tërë (mjedis grafik (Gnome, Kde, etj.), Kernel, programe të përdorura zakonisht (Firefox, Vlc, Chrome, Wine, etj) posaçërisht për kompjuterin tuaj) të gjithë nivelin e shpejtësisë dhe optimizimit që do të kishit .
Ky parim i përpilimit për të marrë një kod të optimizuar veçanërisht për makinerinë tuaj është ai që përdoret nga distros si Gentoo dhe derivatet (për të cilat nuk do të flas tani, unë përdor Fedora minimal me përpilimin e Gnome 3, bërthamës dhe programeve të tjera) , azhurnimet dhe programet tuaja përpilohen gjithmonë.
Kundrat e përpilimit:
Unë tashmë i shpjegova të gjitha avantazhet, por si çdo gjë në univers ajo ka një kundër.
Në rastin e përpilimit ato janë;
- Koha e nevojshme për këtë (Firefox me një i7 4790K (pa overclock pasi jam shumë keq me tensionet) zgjat 3 minuta, Gnome Shell (shiriti asgjë tjetër) me Gnome-Control-Center më mori rreth 2 minuta, të dyja duke u përpiluar në të njëjtën kohë në Fedora. Por në një makinë me një procesor më pak të fuqishëm kjo kohë mund të jetë në mënyrë disproporcionale e gjatë).
- Procesori përdor 100% të fuqisë së tij me të gjitha bërthamat e tij në maksimum, kështu që konsumi dhe nxehtësia ngrihen lart (merrni parasysh nëse keni overclocking ose nëse është veçanërisht një fletore), kështu që është e përshtatshme që të përgatisni një partner ose një kafe për rastin.
- Ndoshta po ju mungon një bibliotekë (mjet) që përdor një program në mënyrë që të mos gabojë në përpilim. Në përgjithësi, të gjitha distrost kanë paketa ose grupe të tyre për ta shmangur këtë (ato vijnë të mbushura me biblioteka të ndryshme dhe gjëra të tjera që lejojnë kernelin të komunikojë ashtu siç duhet me procesorin gjatë procesit).
Si mund të përpiloj?
Këtu po flas për përpilimin e një programi për përdorim normal, jo të një bërthame.
aftësi instaloni ndërtim-thelbësor dh-bëni devscripts fakeroot debhelper debian-policy ccache dh-autoreconf autotools-dev build-dep zhurmë
Unë vendos politikën debian, por nëse distro nuk është Debian dhe kjo ju jep një gabim që nuk ekziston asnjë paketë e tillë, thjesht injoroni atë. Më duhet të sqaroj se unë nuk i kam përdorur këto sisteme për një kohë të gjatë, kështu që nëse një paketë nuk është më në depo, mos bëni problem.
Për Fedora:
sudo yum - instaloni kernel-headerskernel-zhvillohemgrupi sudo yum instaloni "Mjetet e Zhvillimit"grupi sudo yum instaloni "Bibliotekat e Zhvillimit"
Këtu duhet të kërkoj falje për ata që përdorin Arch (nuk e njoh mirë distro) dhe OpenSuse, pasi nuk i njoh këto distros ose paketat përkatëse për të kryer një përpilim korrekt (dhe nuk kam vërtetuar se çfarë ka në rrjet, kështu që se për ata të dy nuk e di nëse funksionojnë).
Tani që keni të gjitha kërkesat e nevojshme, duhet të shkarkoni vetëm kodin burimor të programit që dëshironi të përpiloni, në varësi të shtrirjes që do ta hiqni nga zinxhiri duke përdorur terminalin (mos u shqetësoni, unë do t'ju lë komandat) dhe kur të shkoni në dosje (gjithmonë me terminalin) bëni të njëjtën gjë në vijim:
Nëse keni mundësinë të konfiguroni veten për të zgjedhur përbërësit dhe të tjerët:
./configure
Pastaj ju shkruani:
make
Dhe së fundmi për të instaluar programin në linux tuaj:
make install
Komandat për të hequr zinxhirin duke përdorur terminalin (skedari hapet në një dosje ku ndodhet skedari):
Skedarët e tarit (tar) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Pako | tar cvf skedar.tar / skedar / * Shpaketoj | skedari tar xvf.tar Shikoni përmbajtjen | skedari tar tvf.tar
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .tar.gz - .tar.z - .tgz (tar me gzip ) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Pako dhe zip | tar czvf arkivi.tar.gz / arkivi / Shpaketoni dhe zhbllokoni | skedari tar xzvf.tar.gz Shikoni përmbajtjen (nuk është nxjerrë) | skedari tar tzvf.tar.gz
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .gz (gzip) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Ngjesh | skedari gzip -q (Skedari e ngjesh dhe e riemërton atë "file.gz") Zinxhirin | gzip -d file.gz (Skedari e zbërthen atë dhe e lë si "skedar" Shënim: gzip ngjesh vetëm skedarët, jo drejtoritë
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .bz2 (bzip2) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Ngjesh | skedari bzip2 | skedari bunzip2 (Skedari e ngjesh dhe e riemërton atë "file.bz2") Zinxhirin | skedar bzip2 -d.bz2 | bunzip2 file.bz2 (Skedari e zbërthen atë dhe e lë si "skedar") Shënim: bzip2 ngjesh vetëm skedarët, jo direktoritë
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .tar.bz2 (tar me bzip2) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Ngjesh | skedarët tar -c | bzip2> file.tar.bz2 Zbërtheje | skedari bzip2 -dc.tar.bz2 | tar -xv | skedari tar jvxf.tar.bz2 (versionet e fundit të tar) Shikoni përmbajtjen | skedari bzip2 -dc.tar.bz2 | tar -tv
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .zip (zip) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Ngjesh | skedar zip.zip / mayo / arkivat Unzip | zgjidh skedarin.zip Shiko përmbajtjen | unzip -v skedar.zip
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .rar (rar) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Ngjesh | rar -a skedar.rar / maj / arkivoj Unzip | skedar rar -x.rar Shiko përmbajtjen | skedari rar -v.rar | skedar rar -l.rar
Dhe kjo eshte e gjitha. Përshëndetje nga Buenos Aires, Argjentinë. Gëzuar festat dhe vitet e reja! :)