Šajā mazajā ceļvedī es izskaidrošu (un iemācīšu), kāpēc labāk ir apkopot programmu (teiksim Firefox, Vlc utt.) No tā pirmkoda, nekā lejupielādēt (no programmatūras centra, Yumex, Pacman utt.) ) un instalējiet.
Vispirms mēs ejam ar teoriju:
Kas ir "apkopot"?
Apkopošana ir avota koda (kods, kas rakstīts noteiktā programmēšanas valodā, teiksim, C, C ++ utt.) Pārveidošana par izpildāmu programmu tā darbībai, izmantojot procesoru, lai pārveidotu valodu, ko izmanto koda ģenerēšanai, binārā un montētājs. To bieži sauc arī par iepakojumu.
Kāpēc labāk "kompilēt"?
Vispirms jums jāzina sekojošais, lai saprastu, kāpēc. "Neapstrādātā" veidā (vienkāršs, ne pārāk profesionāls utt.) Katrai rasei (Pentium, Core, Atom utt.) Un tās sugām (Intel, AMD, ARM utt.) Procesorā ir instrukcijas (programmatūra, kas rakstīta montētāja procesos) kods) (viņu modeļi (Core i7, Core i5, Atom x2, Phantom x8, Arm utt.), un tiem ir arī vispārīgi norādījumi, kas ir visiem viņu veidiem.
Lejupielādējot no krātuvēm, izmantojot programmatūras centru / apt-get / Yumex / Yum / Pacman / utt., Tiek teikts, ka programma, kas tiek automātiski instalēta iepriekš sastādīts tā darbībai visos iespējamos procesoros (Intel un Amd). Tā kā tā ir iepriekš sastādīta programma, šīs konkrētajam procesora modelim raksturīgās instrukcijas tiek zaudētas (domājiet, ka, ja tādai programmai kā Firefox vai Chrome, kurā ir vairāk nekā 7 vai 8 miljoni koda rindiņu, katram no tiem bija jāievieto visas īpašās instrukcijas. procesora tirgū, koda apjoms būtu tik liels, ka šī programma vairs nebūtu efektīva) neatstājot neko citu kā tās radītāja zīmola vispārīgos (Intel, Amd, Arm).
Kad pats lejupielādējat, izpakojat un apkopojat programmas pirmkodu, tas tiek apkopots, izmantojot īpašas programmas TU procesors, (kas nenozīmē, ka tas nedarbosies mašīnā ar citu, tikai tas tiks optimizēts tieši un tikai jūsu procesoram), tādējādi atbrīvojot un atbrīvojot visu jaudu, ko jūsu procesors spēj dot, pateicoties tā īpašajām instrukcijām.
Sīkāka informācija par šīm īpašajām instrukcijām ir cieši saistīta ar tā dēvēto mātesplates mikroshēmojumu, kas ir lielas galvassāpes tiem no mums, kuriem ir Intel, kad mēs vēlamies uzlabot procesoru un mātesplatē.
Jūs būtu pārsteigts par spēku, ko jūs amd atoms x2 vai jūs Intel Core iekšpusē, 2 Core Duo, i3utt no vecā datora. Tagad jūs saprotat, kāpēc Linux pasaulē tiek daudz runāts par slavenā kodola (katras operētājsistēmas sirds) sastādīšanu? Iedomājieties, ja jūs apkopojat visu sistēmu (grafisko vidi (Gnome, Kde utt.), Kodolu, parasti izmantotās programmas (Firefox, Vlc, Chrome, Wine uc), īpaši savam datoram), visu ātruma un optimizācijas līmeni, kāds jums būtu .
Šis kompilācijas princips, lai iegūtu kodu, kas optimizēts īpaši jūsu mašīnai, ir tāds, kādu izmanto tādi distrosi kā Gentoo un atvasinājumi (par kuriem es tagad nerunāšu, es izmantoju Fedora minimālo ar Gnome 3, kodola un citu programmu kompilēšanu) kur vienmēr tiek apkopota sistēma, atjauninājumi un programmas.
Kompilācijas mīnusi:
Es jau izskaidroju visas priekšrocības, bet tāpat kā viss Visumā, pret to ir viens.
Kompilācijas gadījumā tie ir;
- Tam nepieciešamais laiks (Firefox ar i7 4790K (bez overclock, jo man ir ļoti slikti ar spriegumu) aizņem 3 minūtes, Gnome Shell (josla nekas cits) ar Gnome-Control-Center man prasīja apmēram 2 minūtes, abas tika apkopotas plkst. tajā pašā laikā Fedorā. Bet mašīnā ar mazāk jaudīgu procesoru šis laiks var būt nesamērīgi garš).
- Procesors maksimāli izmanto 100% jaudas ar visiem kodoliem, tāpēc patēriņš un siltums strauji palielinās (ņemiet to vērā, ja jums ir overclocking vai ja tas ir īpaši piezīmjdators), tāpēc ir ērti sagatavot palīgu vai kafiju šim gadījumam.
- Varbūt jums trūkst bibliotēkas (rīka), kas izmantotu programmu, lai kompilācijā tā nekļūdītos. Lai izvairītos no tā, visiem distros ir paketes vai to komplekti (tie ir iepakoti ar dažādām bibliotēkām un citām lietām, kas ļauj kodolam procesa laikā sazināties tā, kā tam vajadzētu būt).
Kā es varu apkopot?
Šeit es runāju par programmas, nevis par kodola, sastādīšanu normālai lietošanai.
aptitude install build-essential dh-make devscripts fakeroot debhelper debian-policy ccache dh-autoreconf autotools-dev build-dep ardor
Es ievietoju debian-policy, bet, ja jūsu izplatītājs nav Debian un tas dod kļūdu, ka šādas pakotnes nav, vienkārši ignorējiet to. Man ir jāprecizē, ka es ilgu laiku neesmu izmantojis šīs sistēmas, tādēļ, ja pakete vairs nav krātuvēs, neradiet problēmu.
Fedora:
sudo yum -y instalēt kodola galveneskodols-develsudo yum groupinstall "Izstrādes rīki"sudo yum groupinstall "Attīstības bibliotēkas"
Šeit man ir jāatvainojas tiem, kas izmanto Arch (es labi nepārzinu distro) un OpenSuse, jo es nezinu šos distros vai atbilstošās paketes, lai veiktu pareizu kompilāciju (un es neesmu apstiprinājis to, kas atrodas tīklā, tāpēc es nezinu, vai viņi strādā šiem diviem).
Tagad, kad jums ir visas nepieciešamās prasības, jums būs jālejupielādē tikai tās programmas avota kods, kuru vēlaties apkopot, atkarībā no paplašinājuma, kuru jūs to izsaiņojat, izmantojot termināli (neuztraucieties, es jums atstāšu komandas) un dodoties uz mapi (vienmēr ar termināli), rīkojieties tāpat:
Ja jums ir iespēja sevi konfigurēt, lai izvēlētos komponentus un citus:
./configure
Tad jūs rakstāt:
make
Visbeidzot, lai instalētu programmu savā Linux:
make install
Komandas, lai izsaiņotu, izmantojot termināli (fails tiek izpakots mapē, kurā atrodas fails):
.Tara faili (darva) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Iepakojums | tar cvf file.tar / file / * Izpakot | tar xvf file.tar Skatīt saturu | darva tvf file.tar
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .tar.gz - .tar.z - .tgz (darva ar gzip ) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Iepakojums un rāvējslēdzējs | tar czvf archive.tar.gz / archive / Izsaiņojiet un izpakojiet | tar xzvf file.tar.gz Skatīt saturu (nav izvilkts) | darvas tzvf fails.tar.gz
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .gz (gzip) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - saspiest | gzip -q fails (fails saspiež un pārdēvē to par "file.gz") Atvienojiet | gzip -d file.gz (Fails to izsaiņo un atstāj kā "fails" Piezīme: gzip tikai saspiež failus, nevis direktorijus
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .bz2 (bzip2) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - saspiest | bzip2 fails | bunzip2 fails (fails saspiež un pārdēvē to par "file.bz2") bzip2 -d fails.bz2 | bunzip2 file.bz2 (fails to izpako un atstāj kā "fails") Piezīme: bzip2 tikai saspiež failus, nevis direktorijus
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .tar.bz2 (darva ar bzip2) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - saspiest | tar -c faili | bzip2> file.tar.bz2 Izpakojiet | bzip2 -dc fails.tar.bz2 | darva -xv | tar jvxf file.tar.bz2 (jaunākās darvas versijas) Skatīt saturu | bzip2 -dc fails.tar.bz2 | darva -tv
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .zip (zip) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - saspiest | zip file.zip / mayo / archives Atvienot | unzip file.zip Skatīt saturu | atvienojiet -v failu.zip
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .rar (rar) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - saspiest | rar -a file.rar / may / arhivē Unzip | rar -x file.rar Skatīt saturu | rar -v fails.rar | rar -l fails.rar
Un tas arī viss. Sveiciens no Buenosairesas, Argentīnā. Priecīgus svētkus un Jauno gadu! :).