Kaynaktan derlemek veya .deb paketinden yüklemek daha mı iyi?


18

Bazen, internetten yazılım indirirken, Debian / Ubuntu'm için hazır bir .deb paketi ve ayrıca derlenecek bir tarball olduğunu görüyorum. Başlangıçta paketi kurulum kolaylığı için kullanırdım ve derlemeye bile cesaret edemezdim. Sesi bile beni biraz korkuttu. Ancak günümüzde, kendimi bazen bir ikilemde bulduğumda: .deb paketine kıyasla kaynaktan derlemenin popüler olmayan bir avantajı var mı? Umarım burada öğrenirim, teşekkür ederim.

Yanıtlar:


24

Kaynaktan derlemenin avantajı, stok standart Ubuntu paketlerinde eksik / devre dışı bırakılabilen belirli bayrak / seçeneklerle paketleri derleyebilmenizdir. Ayrıca, aynı programın birden çok sürümünün yüklenmesini kolaylaştırır. Ayrıca, bir paketin Ubuntu depolarından zaten kaldırılmış veya henüz mevcut olmayan tam bir sürümünü seçebilirsiniz (örnek: Bazı eski dosyaları çalıştırmak için ihtiyaç duyduğum için / opt / dizinimde birkaç Python 2.4.x sürümü var yazılım).

Kaynaktan derlemenin dezavantajı, bir .deb oluşturup yüklemezseniz, normal "./configure; make; sudo make install" yordamının Ubuntu'nun paket yöneticisini yaptığınız değişikliklerden tamamen habersiz tutmasıdır. elle derlenmiş yazılım için herhangi bir güncelleme almayacaksınız; ayrı bir yere kurmaya dikkat etmezseniz, paket yöneticisinin daha sonra paketinizi geçersiz kılması / kırması mümkündür.

Kısacası: Her zaman önce standart Ubuntu depolarından yüklemeyi düşünün, daha sonra bir .deb yüklemeyi düşünün; kaynaklardan yalnızca bunu neden yapmanız gerektiğini tam olarak biliyorsanız derleyin.


Ayrıca, paket performansının farklı olabileceğini, derlendiğinde, mevcut çekirdeğe daha iyi uyumluluğunu da okudum. Şahsen kıyaslama yapmadım.
Fedir RYKHTIK

@Fedir: Çekirdeğin bununla bir ilgisi olduğundan emin değilim, daha ziyade işlemci mimarisi - örneğin, eski günlerde birçok dağıtım, Pentium için bir programı manuel olarak derlerken maksimum uyumluluk için 80386 komut seti ile derlenmiş paketler içeriyordu. daha verimli talimatlar kullanmak için. Bu nedenle ana makinede kaynaktan derlenen Gentoo gibi tüm dağıtımlar vardır. Bununla birlikte, fark genellikle minimaldir ve sadece çok özel uygulamalarda fark edilebilir.
Sergey

1
Make install yerine checkinstall kullanmanın belirtilen dezavantajların çoğunu azalttığını unutmayın. Bkz. Help.ubuntu.com/community/CompilingEasyHowTo
ndemou

1
Nitpicking için özür dilerim, @EliahKagan, ancak virtualenv harika olsa da, farklı libs yüklü birden fazla Python ortamını korumak için daha fazla . Python'un belirli bir sürümünü istiyorsanız , belki belirli ayarlarla derlenmiş olabilir - yine de gerçek ikili dosyayı yüklemeniz gerekir - ya bir .deb'den ya da sıfırdan derlenmiş.
Sergey

@Sergey Haklısın. (Ve nitpickiing olarak söylediğin hiçbir şeyi görmüyorum - yanlış ve yanıltıcı yorumum için özür dilemem gerekiyorsa!) Anladığım gibi conda, paket yöneticileri otomatik olarak sanal ortamlar yapacak ve onlar için farklı Python kurulumları kuracak , proje başına sürümler oluşturma ve sürdürme. Ama dediğin gibi, virtualenv'in kendisi bunu yapmayacak.
Eliah Kagan

1

Bunu daha dün tartışıyordum. Bence kırılgan bir şey inşa etmemek son derece önemlidir, çünkü güncel ve iyi belgeler gibi bir şey olmadığı bilinmektedir, özellikle kırılgan bir sistemle çalışırken, ateşle savaşmak ve yazmak için zaman olmayacaktır. ve her şeyin sağlam olduğu yerlerde belgelere çok fazla ihtiyaç duyulmaz. Bu yüzden hiçbir zaman kaynaktan derlememeli, başka bir çözüm bulmamalı, başka bir yazılım kullanmamalı, mimarinizi değiştirmemeli, ancak güncellemeden sonra bozulacak bir şey kullanmamalısınız. Ve evet, çekirdek sürümü ile hiçbir ilgisi yok, makinenizin mimarisi ile ilgili ve bugünlerde kaynak kodundan derleme ile önemli bir fark elde edemezsiniz, bahse girmeyeceksiniz.


0

.Deb'yi yüklemek kesinlikle çok daha kolaydır, ancak eğer yapabiliyorsanız, en iyi bahis, bir repo veya ppa'da bulmaktır, böylece güncellemeler sağlanabilir.

Önce değiştirmeyi düşünmüyorsanız AFAIK'in kendiniz derlemesinin gerçek bir yararı yoktur. Yazılımı olduğu gibi istiyorsanız, .deb'yi yükleyin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.