Sa maliit na gabay na ito ay ipapaliwanag ko (at turuan kita) kung bakit mas mahusay na mag-ipon ka ng isang programa (sabihin ang Firefox, Vlc, atbp) mula sa source code nito, kaysa i-download ito (mula sa The Software Center, Yumex, Pacman, atbp. ) at i-install.
Pumunta muna kami sa teorya:
Ano ang "compile"?
Ang pag-iipon ay binabago ang source code (code na nakasulat sa isang tiyak na wika ng programa, sabihin ang C, C ++, atbp.) Sa isang maipapatupad na programa para sa pagpapatakbo nito sa pamamagitan ng paggamit ng processor upang i-convert ang wikang ginamit upang makabuo ng code sa binary at nagtitipon Ito ay madalas ding tinatawag na packaging.
Bakit mas mahusay na "mag-ipon"?
Una dapat mong malaman ang sumusunod upang maunawaan kung bakit. Sinabi sa isang «krudo» na paraan (simple, hindi masyadong propesyonal, atbp), ang bawat lahi (Pentium, Core, Atom, atbp) at ang mga species nito (Intel, AMD, ARM, atbp.) Ng processor ay may mga tagubilin (software na nakasulat sa assembler pinoproseso ang code) ng kanilang modelo (Core i7, Core i5, Atom x2, Phantom x8, Arm, atbp.) at mayroon ding mga pangkalahatang tagubilin na mayroon ang lahat ng kanilang uri.
Kapag nag-download ka ng programa mula sa mga repository sa pamamagitan ng Software Center (hal., apt-get/Yumex/Yum/Pacman/atbp.), awtomatiko itong ini-install at sinasabing precompiled na para tumakbo sa lahat ng posibleng processor (Intel at AMD). Dahil isa itong precompiled na programa, nawawala nito ang mga instruksyon na partikular sa partikular na modelo ng processor na iyon (isipin kung ang isang programa tulad ng Firefox o Chrome, na mayroong mahigit 7 o 8 milyong linya ng code, ay kailangang magsama ng lahat ng partikular na instruksyon para sa bawat processor sa merkado; ang dami ng code ay magiging napakalaki kaya hindi na magiging mahusay ang programa), na mananatili lamang ang mga pangkalahatang instruksyon ng lumikha nito (Intel, AMD, ARM).
Kapag ikaw mismo ang nag-download, nag-decompress, at nag-compile ng source code ng isang programa, ito ay kino-compile gamit ang mga partikular na tagubilin ng IYONG processor ( na hindi nangangahulugang hindi ito gagana sa isang makina na may ibang processor, kundi ito ay ia-optimize nang partikular at para lamang sa iyong processor) , sa gayon ay inilalabas at pinapalaya ang lahat ng kapangyarihang kayang ibigay ng iyong processor salamat sa mga partikular na tagubilin nito.
Sa higit pang mga detalyeng panteknikal, ang mga tukoy na tagubiling ito ay malapit na naiugnay sa kung ano ang kilala bilang chipset ng iyong motherboard, na kung saan ay ang mahusay na sakit ng ulo para sa amin na mayroong Intel kapag nais naming i-upgrade ang processor at motherboard.
Magugulat ka sa lakas na kayang ibigay ng AMD Atom x2 o Intel Core i3 , Core 2 Duo , o iba pang processor ng iyong lumang PC . Ngayon naiintindihan mo na kung bakit ang pag-compile ng sikat na kernel (ang puso ng bawat operating system) ay naging usap-usapan sa mundo ng Linux? Isipin mo kung makakapag-compile ka ng isang buong sistema na partikular para sa iyong PC (graphical environment (GNOME, KDE, atbp.), kernel, mga karaniwang ginagamit na programa (Firefox, VLC, Chrome, Wine, atbp.))—ang antas ng bilis at pag-optimize na makukuha mo.
Ang prinsipyong ito ng pagtitipon upang makakuha ng isang code na na-optimize lalo na para sa iyong machine ay ang ginamit ng mga distrito tulad ng Gentoo at mga derivatives (na hindi ko pag-uusapan ngayon, gumagamit ako ng maliit na Fedora na may compilation ng Gnome 3, ang kernel at iba pang mga programa) kung saan ang system, ang iyong mga pag-update at ang iyong mga programa ay laging naipon.
Kahinaan ng pagtitipon:
Ipinaliwanag ko na ang lahat ng mga pakinabang, ngunit tulad ng lahat sa sansinukob mayroon itong laban.
Sa compilation case sila ay;
- Ang oras na kinakailangan para dito (ang Firefox na may i7 4790K (nang walang overclock dahil napakasama ko sa mga voltages) ay tumatagal ng 3 minuto, ang Gnome Shell (ang bar ay wala nang iba pa) kasama ang Gnome-Control-Center ay tumagal sa akin ng 2 minuto, parehong naipon sa sa parehong oras sa Fedora. Ngunit sa isang makina na may isang hindi gaanong malakas na processor sa oras na ito ay maaaring maging hindi katimbang na haba).
- Gumagamit ang processor ng 100% ng lakas nito kasama ang lahat ng mga core nito sa maximum, kaya't ang pagkonsumo at pag-init ay tumaas (isaalang-alang ito kung mayroon kang overclocking o kung ito ay lalo na isang notebook), kaya't maginhawa na maghanda ka ng asawa o kape para sa okasyon
- Marahil ay nawawala ka sa isang silid-aklatan (tool) na gumagamit ng isang programa upang hindi ito magkamali sa pag-ipon. Sa pangkalahatan, ang lahat ng mga distrito ay may mga pakete o hanay ng mga ito upang maiwasan ito (naka-pack ang mga ito sa iba't ibang mga aklatan at iba pang mga bagay na pinapayagan ang kernel na makipag-usap tulad ng dapat sa processor habang nasa proseso).
Paano ako makakapagtipon?
Narito ang pinag-uusapan ko tungkol sa pag-iipon ng isang programa para sa normal na paggamit, hindi isang kernel.
kakayahang mag-install ng build-essential dh-make devscripts fakeroot debhelper debian-policy ccache dh-autoreconf autotools-dev build-dep ardor
Naglagay ako ng patakaran sa debian, ngunit kung ang iyong distro ay hindi Debian at bibigyan ka nito ng isang error na walang ganitong pakete, huwag pansinin lamang ito. Kailangan kong linawin na hindi ko nagamit ang mga sistemang ito nang mahabang panahon, kaya kung ang isang pakete ay wala na sa mga repository, huwag gumawa ng problema.
Para sa Fedora:
sudo yum -y mag-install ng mga kernel-headerkernel-develsudo yum groupinstall na "Development Tools"sudo yum groupinstall "Development Library"
Narito kailangan kong humingi ng paumanhin para sa mga gumagamit ng Arch (hindi ko alam ang distro) at OpenSuse, dahil hindi ko alam ang mga distro na ito o ang kani-kanilang mga pakete upang maisagawa ang isang tamang pagsasama-sama (at hindi ko napatunayan kung ano ang nasa network, para sa dalawang yun hindi ko alam kung gumagana sila).
Ngayon na mayroon ka ng lahat ng kinakailangang mga kinakailangan, kailangan mo lamang i-download ang source code ng program na nais mong i-compile, depende sa extension na i-unzip mo ito gamit ang terminal (huwag mag-alala, iiwan ko sa iyo ang mga utos) at kapag nagpunta ka sa folder (laging kasama ang terminal) ginagawa mo ang parehong sumusunod:
Kung may posibilidad kang i-configure ang iyong sarili upang piliin ang mga sangkap at iba pa:
./configure
Pagkatapos mag-type ka:
make
At sa wakas upang mai-install ang programa sa iyong linux:
make install
Nag-uutos na i-unzip gamit ang terminal (ang file ay na-zip sa isang folder kung saan matatagpuan ang file):
.Tar files (tar) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Pack | tar cvf file.tar / file / * I-unpack | tar xvf file.tar Tingnan ang nilalaman | tar tvf file.tar
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .tar.gz - .tar.z - .tgz (tar na may gzip ) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Pack at zip | tar czvf file.tar.gz / file / I-unpack at i-unzip | tar xzvf file.tar.gz Tingnan ang nilalaman (hindi nakuha) | tar tzvf file.tar.gz
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .gz (gzip) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Compress | gzip -q file (Sinisiksik ng file at pinangalanan itong "file.gz") I-unzip | gzip -d file.gz (Inaalis ito ng file at iniiwan ito bilang "file" Tandaan: ang gzip ay nagsisiksik lamang ng mga file, hindi ang mga direktoryo
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .bz2 (bzip2) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Compress | bzip2 file | bunzip2 file (Pinipiga ng file at pinangalanan itong "file.bz2") I-unzip | bzip2 -d file.bz2 | bunzip2 file.bz2 (Unzips ito ng file at iniiwan ito bilang "file") Tandaan: ang bzip2 ay nagsisiksik lamang ng mga file, hindi ang mga direktoryo
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .tar.bz2 (tar na may bzip2) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Compress | mga tar -c file | bzip2> file.tar.bz2 I-unzip | bzip2 -dc file.tar.bz2 | tar -xv | tar jvxf file.tar.bz2 (mga pinakabagong bersyon ng tar) Tingnan ang nilalaman | bzip2 -dc file.tar.bz2 | tar -tv
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .zip (zip) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Compress | zip file.zip / mayo / archives Unzip | i-unzip ang file.zip Tingnan ang nilalaman | i-unzip -v file.zip
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .rar (rar) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Compress | rar -a file.rar / may / archive Unzip | rar -x file.rar Tingnan ang nilalaman | rar -v file.rar | rar -l file.rar
At yun lang. Pagbati mula sa Buenos Aires, Argentina. Maligayang Piyesta Opisyal at Bagong Taon! :).