Mengapa lebih baik untuk menyusun daripada memasang dari repositori

Dalam panduan kecil ini saya akan menerangkan (dan mengajar anda) mengapa lebih baik anda menyusun program (katakan Firefox, Vlc, dll) dari kod sumbernya, daripada memuat turunnya (dari Pusat Perisian, Yumex, Pacman, dll. dan pasang.

Pertama kita pergi dengan teori:

Apa itu "kompilasi"?

Penyusunan adalah mengubah kod sumber (kod yang ditulis dalam bahasa pengaturcaraan tertentu, katakanlah C, C ++, dan lain-lain) menjadi program yang dapat dilaksanakan untuk pengoperasiannya melalui penggunaan pemproses untuk menukar bahasa yang digunakan untuk menghasilkan kod ke binari dan penghimpun. Ia juga sering disebut pembungkusan.

Mengapa lebih baik untuk "menyusun"?

Mula-mula anda harus mengetahui perkara berikut untuk memahami mengapa. Dikatakan dengan cara "kasar" (sederhana, tidak terlalu profesional, dll), setiap perlumbaan (Pentium, Core, Atom, dll) dan spesiesnya (Intel, AMD, ARM, dll.) Pemproses mempunyai arahan (perisian yang ditulis dalam assembler yang memproses kod) model mereka (Core i7, Core i5, Atom x2, Phantom x8, Arm, dll.) dan juga mempunyai arahan umum yang dimiliki oleh semua jenis mereka.

Apabila anda memuat turun program daripada repositori melalui Pusat Perisian (cth., apt-get/Yumex/Yum/Pacman/dll), ia dipasang secara automatik dan dikatakan telah dikompilasi terlebih dahulu untuk dijalankan pada semua pemproses yang mungkin (Intel dan AMD). Oleh kerana ia merupakan program yang dikompilasi terlebih dahulu, ia kehilangan arahan khusus untuk model pemproses tertentu tersebut (bayangkan jika program seperti Firefox atau Chrome, yang mempunyai lebih 7 atau 8 juta baris kod, terpaksa memasukkan semua arahan khusus untuk setiap pemproses di pasaran; jumlah kod akan menjadi begitu besar sehingga program tersebut tidak lagi cekap), hanya mengekalkan arahan umum penciptanya (Intel, AMD, ARM).

Apabila anda memuat turun, menyahmampatkan dan mengkompil kod sumber program sendiri, ia dikompilasi dengan arahan khusus pemproses ANDA ( yang tidak bermakna ia tidak akan berfungsi pada mesin dengan pemproses yang berbeza, cuma ia akan dioptimumkan khusus dan semata-mata untuk pemproses anda) , sekali gus melepaskan dan membebaskan semua kuasa yang mampu diberikan oleh pemproses anda hasil daripada arahan khususnya.

Dengan lebih terperinci teknikal, arahan khusus ini berkait rapat dengan apa yang dikenali sebagai chipset motherboard anda, yang merupakan sakit kepala bagi kita yang mempunyai Intel ketika kita mahu menaik taraf prosesor dan motherboard.

Anda akan terkejut dengan kuasa yang boleh diberikan oleh AMD Atom x2 atau Intel Core i3 , Core 2 Duo atau pemproses lain pada PC lama anda . Sekarang anda faham mengapa penyusunan kernel yang terkenal (jantung setiap sistem pengendalian) begitu banyak diperkatakan dalam dunia Linux? Bayangkan jika anda boleh menyusun keseluruhan sistem khusus untuk PC anda (persekitaran grafik (GNOME, KDE, dll.), kernel, program yang biasa digunakan (Firefox, VLC, Chrome, Wine, dll.))—tahap kelajuan dan pengoptimuman yang akan anda perolehi.

Prinsip penyusunan ini untuk mendapatkan kod yang dioptimumkan terutamanya untuk mesin anda adalah yang digunakan oleh distro seperti Gentoo dan derivatif (yang tidak akan saya bicarakan sekarang, saya menggunakan Fedora minimal dengan penyusunan Gnome 3, kernel dan program lain) di mana sistem, kemas kini dan program anda selalu disusun.

Kekurangan penyusunan:

Saya sudah menjelaskan semua kelebihannya, tetapi seperti semua yang ada di alam semesta, ia mempunyai kelebihan.

Dalam kes penyusunan mereka;

  • Masa yang diperlukan untuk ini (Firefox dengan i7 4790K (tanpa overclock kerana saya sangat teruk dengan voltan) mengambil masa 3 minit, Gnome Shell (bar tidak lebih dari itu) dengan Gnome-Control-Center mengambil masa lebih kurang 2 minit, kedua-duanya disusun pada masa yang sama di Fedora. Tetapi pada mesin dengan pemproses yang kurang berkuasa kali ini boleh panjangnya tidak seimbang).
  • Pemproses menggunakan 100% kuasanya dengan semua intinya secara maksimum, jadi penggunaan dan pemanasan melambung (mengambil kira ini jika anda mempunyai overclocking atau jika itu terutama notebook), jadi lebih baik anda mempersiapkan pasangan atau kopi untuk majlis itu.
  • Mungkin anda tidak mempunyai pustaka (alat) yang menggunakan program agar tidak tersilap dalam penyusunan. Secara umum, semua distro mempunyai pakej atau set untuk mengelakkannya (mereka dipenuhi dengan pelbagai perpustakaan dan perkara lain yang membolehkan kernel berkomunikasi sebagaimana mestinya dengan pemproses semasa prosesnya).

Bagaimana saya boleh menyusun?

Untuk Debian (Ubuntu, Mint, Elementary, dan lain-lain, semuanya merupakan turunan dari ini, jadi ikuti ini

Di sini saya bercakap tentang menyusun program untuk penggunaan biasa, bukan kernel.

aptitude install build-essential dh-make devscripts fakeroot debhelper debian-policy ccache dh-autoreconf autotools-dev build-dep ardor

Saya meletakkan dasar debian, tetapi jika distro anda bukan Debian dan ini memberi anda ralat bahawa tidak ada pakej seperti itu, abaikan saja. Saya harus menjelaskan bahawa saya sudah lama tidak menggunakan sistem ini, jadi jika pakej tidak lagi berada di repositori, jangan buat masalah.

Untuk Fedora:

sudo yum -y pasang kernel-header
kernel-devel
sudo yum groupinstall "Alat Pembangunan"
sudo yum groupinstall "Perpustakaan Pembangunan"

Di sini saya harus meminta maaf bagi mereka yang menggunakan Arch (saya tidak tahu distro dengan baik) dan OpenSuse, kerana saya tidak tahu distro ini atau pakej yang berkenaan untuk melakukan penyusunan yang betul (dan saya belum mengesahkan apa yang ada di rangkaian, jadi bahawa untuk kedua-dua saya tidak tahu sama ada mereka bekerja).

Sekarang kerana anda mempunyai semua syarat yang diperlukan, anda hanya perlu memuat turun kod sumber program yang ingin anda susun, bergantung pada pelanjutan yang anda unzip menggunakan terminal (jangan bimbang, saya akan meninggalkan perintah) dan apabila anda pergi ke folder (selalu bersama terminal) anda melakukan perkara yang sama berikut:

Sekiranya anda mempunyai kemungkinan untuk mengkonfigurasi diri anda untuk memilih komponen dan yang lain:

./configure

Kemudian anda taip:

make

Dan akhirnya untuk memasang program di linux anda:

make install

Semua ini selalu ada dengan root (su di Fedora, sudo su di Ubuntu dan turunannya (Mint, Elementary Os, dll)

Perintah untuk membuka zip menggunakan terminal (fail dizip dalam folder di mana fail berada):

.Tar fail (tar) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Pek | tar cvf file.tar / file / * Bongkar | tar xvf file.tar Lihat kandungan | tar tvf file.tar
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .tar.gz - .tar.z - .tgz (tar dengan gzip) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Pek dan zip | tar czvf file.tar.gz / file / Bongkar dan buka zip | tar xzvf file.tar.gz Lihat kandungan (tidak diekstrak) | tar tzvf file.tar.gz
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .gz (gzip) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Memampatkan | fail gzip -q (Fail memampatkan dan menamakannya semula "file.gz") Unzip | gzip -d file.gz (Fail itu zip dan biarkan sebagai "fail" Catatan: gzip hanya memampatkan fail, bukan direktori
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .bz2 (bzip2) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Memampatkan | fail bzip2 | fail bunzip2 (Fail memampatkan dan menamakannya semula "file.bz2") Unzip | bzip2 -d file.bz2 | bunzip2 file.bz2 (Fail itu zip dan biarkan sebagai "file") Catatan: bzip2 hanya memampatkan fail, bukan direktori
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .tar.bz2 (tar dengan bzip2) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Kompres | fail tar -c | bzip2> file.tar.bz2 Unzip | bzip2 -dc file.tar.bz2 | tar -xv | tar jvxf file.tar.bz2 (versi tar terkini) Lihat kandungan | bzip2 -dc file.tar.bz2 | tar -tv
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .zip (zip) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Memampatkan | zip file.zip / mayo / arkib Unzip | unzip file.zip Lihat kandungan | unzip -v file.zip
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .rar (rar) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Memampatkan | rar -a file.rar / may / arkib Unzip | rar -x file.rar Lihat kandungan | rar -v file.rar | rar -l file.rar

Dan itu sahaja. Salam dari Buenos Aires, Argentina. Selamat Bercuti dan Tahun Baru! :)


Tambahkan sebagai sumber pilihan dalam Google