Bu küçük kılavuzda, neden bir programı (örneğin Firefox, Vlc, vb.) İndirmekten (The Software Center, Yumex, Pacman, vb.) Kaynak kodundan derlemenin daha iyi olduğunu açıklayacağım (ve size öğreteceğim). ) ve yükleyin.
İlk önce teori ile gidiyoruz:
"Derleme" nedir?
Derleme, kaynak kodunu (belirli bir programlama dilinde yazılan kod, örneğin C, C ++, vb.), Kodu oluşturmak için kullanılan dili ikiliye ve assembler'a dönüştürmek için işlemciyi kullanarak çalıştırılabilir bir programa dönüştürmektir. Genellikle paketleme olarak da adlandırılır.
Neden "derlemek" daha iyidir?
Nedenini anlamak için önce aşağıdakileri bilmelisiniz. "Kaba" bir şekilde (basit, çok profesyonel olmayan vb.), Her yarışta (Pentium, Core, Atom, vb.) Ve işlemci türlerinde (Intel, AMD, ARM, vb.) Talimatlar (assembler'da yazılmış yazılım) modellerinin (Core i7, Core i5, Atom x2, Phantom x8, Arm, vb.) kodunu işleyen ve ayrıca tüm türlerinin sahip olduğu genel talimatlara sahip.
Yazılım Merkezi aracılığıyla depolardan bir program indirdiğinizde (örneğin, apt-get/Yumex/Yum/Pacman/vb.), otomatik olarak yüklenir ve tüm olası işlemcilerde (Intel ve AMD) çalışacak şekilde önceden derlenmiş olduğu söylenir . Önceden derlenmiş bir program olduğu için, o belirli işlemci modeline özgü talimatları kaybeder (Firefox veya Chrome gibi 7 veya 8 milyon satırdan fazla koda sahip bir programın, piyasadaki her işlemci için tüm özel talimatları içermesi gerektiğini düşünün; kod miktarı o kadar büyük olurdu ki program artık verimli olmazdı), yalnızca yaratıcısının (Intel, AMD, ARM) genel talimatlarını korur.
Bir programın kaynak kodunu indirip, sıkıştırılmış dosyayı açıp ve kendiniz derlediğinizde, bu kod SİZİN işlemcinizin özel talimatlarıyla derlenir ( bu, farklı bir işlemciye sahip bir makinede çalışmayacağı anlamına gelmez, yalnızca sizin işlemciniz için özel ve tamamen optimize edileceği anlamına gelir) , böylece işlemcinizin özel talimatları sayesinde verebileceği tüm gücü ortaya çıkarır ve serbest bırakırsınız.
Daha teknik detaylarda, bu özel talimatlar, işlemci ve anakartı yükseltmek istediğimizde Intel'e sahip olan bizler için büyük baş ağrısı olan anakartınızın yonga seti olarak bilinen şeyle yakından bağlantılıdır.
Eski bilgisayarınızın AMD Atom x2 veya Intel Core i3 , Core 2 Duo veya diğer işlemcisinin sağlayabileceği güce şaşıracaksınız . Şimdi Linux dünyasında ünlü çekirdeğin (her işletim sisteminin kalbi) derlenmesinin neden bu kadar çok konuşulduğunu anlıyorsunuz değil mi? Bilgisayarınız için özel olarak bir sistem (grafik ortamı (GNOME, KDE, vb.), çekirdek, sık kullanılan programlar (Firefox, VLC, Chrome, Wine, vb.)) derleyebildiğinizi hayal edin; elde edeceğiniz hız ve optimizasyon seviyesini düşünün.
Özellikle makineniz için optimize edilmiş bir kod elde etmeye yönelik bu derleme ilkesi, Gentoo ve türevleri gibi dağıtımlar tarafından kullanılan ilkedir (bundan şimdi bahsetmeyeceğim, Gnome 3, çekirdek ve diğer programların derlenmesiyle Fedora minimal kullanıyorum) sistem, güncellemeleriniz ve programlarınızın her zaman derlendiği yer.
Derlemenin eksileri:
Tüm avantajları zaten açıkladım, ama evrendeki her şey gibi ona karşı da var.
Derleme durumunda bunlar;
- Bunun için gereken süre (i7 4790K ile Firefox (voltaj konusunda çok kötü olduğum için hız aşırtma olmadan) 3 dakika, Gnome-Control-Center ile Gnome Shell (bar başka bir şey değil) yaklaşık 2 dakika sürdü, her ikisi de şu şekilde derlendi: aynı zamanda Fedora'da. Ancak daha az güçlü işlemciye sahip bir makinede bu süre orantısız bir şekilde uzun olabilir).
- İşlemci, gücünün% 100'ünü tüm çekirdekleriyle maksimumda kullanır, bu nedenle tüketim ve ısı fırlaması (hız aşırtma varsa veya özellikle dizüstü bilgisayar ise bunu dikkate alın), bu nedenle bir eş veya kahve hazırlamanız uygundur. vesilesiyle.
- Derlemede hata yapmaması için bir program kullanan bir kitaplık (araç) eksik olabilir. Genel olarak, tüm dağıtımların bundan kaçınmak için paketleri veya kümeleri vardır (çeşitli kitaplıklar ve işlem sırasında çekirdeğin işlemciyle olması gerektiği gibi iletişim kurmasına izin veren diğer şeylerle birlikte gelirler).
Nasıl derleyebilirim?
Burada bir çekirdek yerine normal kullanım için bir program derlemekten bahsediyorum.
aptitude install build-essential dh-make devscripts fakeroot debhelper debian-policy ccache dh-autoreconf autotools-dev build-dep ardor
Debian-policy koyuyorum, ancak dağıtımınız Debian değilse ve bu size böyle bir paketin bulunmadığına dair bir hata veriyorsa, onu görmezden gelin. Bu sistemleri uzun süredir kullanmadığımı açıklığa kavuşturmalıyım, yani artık bir paket depoda değilse endişelenmeyin.
Fedora için:
sudo yum -y çekirdek başlıklarını yükleçekirdek develsudo yum groupinstall "Geliştirme Araçları"sudo yum groupinstall "Geliştirme Kitaplıkları"
Burada, Arch (dağıtımı iyi bilmiyorum) ve OpenSuse kullananlar için özür dilemeliyim, çünkü bu dağıtımları veya ilgili paketleri doğru bir derleme yapmak için bilmiyorum (ve ağda ne olduğunu doğrulamadım, bu yüzden bu ikisi için çalışıp çalışmadıklarını bilmiyorum).
Artık gerekli tüm gereksinimlere sahip olduğunuza göre, terminali kullanarak açtığınız uzantıya göre derlemek istediğiniz programın kaynak kodunu indirmeniz yeterlidir (endişelenmeyin, size komutları bırakacağım) ve klasöre gittiğinizde (her zaman terminalde) aşağıdakileri yaparsınız:
Bileşenleri ve diğerlerini seçmek için kendinizi yapılandırma olanağınız varsa:
./configure
Sonra yazarsın:
make
Ve son olarak programı linux'unuza kurmak için:
make install
Terminali kullanarak sıkıştırmayı açma komutları (dosya, dosyanın bulunduğu bir klasörde açılır):
.Tar dosyaları (tar) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Paketleme | tar cvf dosya.tar / dosya / * Paketi Aç | tar xvf dosya.tar İçeriği görüntüle | tar tvf dosyası.tar
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .tar.gz - .tar.z - .tgz (gzip ile katran ) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Paketle ve sıkıştır | tar czvf archive.tar.gz / archive / Paketi aç ve sıkıştır | tar xzvf file.tar.gz İçeriği görüntüleyin (çıkarılmamış) | tar tzvf dosya.tar.gz
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .gz (gzip) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Sıkıştır | gzip -q dosyası (Dosya sıkıştırılır ve "file.gz" olarak yeniden adlandırılır) Unzip | gzip -d file.gz (Dosya, sıkıştırmayı açar ve onu "dosya" olarak bırakır. Not: gzip, dizinleri değil, yalnızca dosyaları sıkıştırır
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .bz2 (bzip2) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Sıkıştır | bzip2 dosyası | bunzip2 dosyası (Dosya sıkıştırır ve "file.bz2" olarak yeniden adlandırır) Unzip | bzip2 -d dosya.bz2 | bunzip2 file.bz2 (Dosya onu açar ve "dosya" olarak bırakır) Not: bzip2 sadece dosyaları sıkıştırır, dizinleri değil
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .tar.bz2 (bzip2 ile katran) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Sıkıştır | tar -c dosyaları | bzip2> file.tar.bz2 Unzip | bzip2 -dc file.tar.bz2 | tar -xv | tar jvxf file.tar.bz2 (tar'ın son sürümleri) İçeriği görüntüle | bzip2 -dc file.tar.bz2 | tar -tv
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .zip (zip) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Sıkıştır | zip dosyası.zip / mayo / arşivler Unzip | unzip file.zip İçeriği görüntüleyin | unzip -v dosya.zip
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .rar (rar) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Sıkıştır | rar -a dosya.rar / may / arşivler Unzip | rar -x file.rar İçeriği görüntüle | rar -v dosya.rar | rar -l dosya.rar
Ve hepsi bu. Buenos Aires, Arjantin'den selamlar. Mutlu Bayramlar ve Yeni Yıllar! :).