Kaynak koddan kurulan yazılımı doğrudan güncelleyebilir miyim


14

Ubuntu kullanmaya başladığımdan bu yana neredeyse bir yıl geçmesine rağmen, yazılımı kaynaktan yüklemeye çalışmadım. Aslında buna ihtiyaç duymadım. Ama şimdi depolarda sürüm aday aşamasında olan bir yazılım üzerinde çalışıyorum, ancak en son kararlı sürümün kaynak kodu yazılım ana sayfasında mevcuttur.

Yazılımın birçok bağımlılığı varsa, kaynak koddan yüklemenin zor olabileceğini öğrendim. Ancak bununla başa çıkarsam, en son sürümden memnun olabilirim. Ancak böyle bir yazılımın otomatik olarak kendini güncelleyip güncelleyemeyeceğini merak ediyorum ya da paketi güncellemek için bazı komut dosyaları çalıştırmam gerekecek. Ya da her güncellemeyi sıfırdan yeniden yüklemem gerekecek mi?

Ayrıca, yukarıdakilerden başka bir kaynaktan yükleme yapmanın herhangi bir avantajı olup olmadığını bilmek için sabırsızlanıyorum.


Yanıtlar:


10

Bir yazılımın bağımlılıklarının nadiren değiştiğini belirtmek en iyisidir. Başarıyla yazılım kez derlenmiş varsa, sonraki sürümler gerekir derlemek kolay olacak - tüm bağımlılıkları gerektiğini zaten memnun.

Kaynaktan derlediyseniz , dağıtımın söz konusu yazılımı depolarına eklemesini beklemedikçe veya geliştiricilerin PPA'sı güncellenene kadar beklemediğiniz sürece.deb , güncellemek için kullanabileceğiniz hiçbir veya benzer paket yoktur .

Basitçe söylemek gerekirse, birisinin onu bir borç haline getirmek için önce derlemesi gerekir. Eski bir sürümü derlemek size otomatik olarak güncelleme olanağı sağlamaz, yine de "download-configure-compile-install" sürecini tamamlamanız gerekir.

Ancak , aynı sürümü birden çok bilgisayara yüklemek istiyorsanız, derlenmiş sürümünüzü .deb(veya benzeri) olarak paketlemek ve bu bilgisayarlara dağıtmak mantıklı olacaktır . Doğru yapılırsa bağımlılıklar otomatik olarak çekilir.

Kaynaktan kurmanın avantajlarına gelince, düşünebileceğim sadece ikisi:

  • Kodun en son revizyonuna erişirsiniz ve kararlı bir sürüm veya en son sürüm (genellikle gece sürümleri, en son revizyon vb. Denir) arasında seçim yapabilirsiniz.
  • Ubuntu / diğer dağıtım, yazılımı depolarına dahil etmek istemeyebilir. Bu durumda, geliştiriciler veya topluluk tarafından sağlanan kaynak koduna veya paketlerine yapışmış olursunuz. Yani kaynakları kullanmaktan başka seçeneğiniz yok.

4
Yüklü yazılımlara genel bir bakışı tek bir yerde tutmanıza yardımcı olduğu ve kaldırma veya yükseltmeyi kendiniz için daha kolay hale getirdiği için, bir şeyi kendiniz için 1 bilgisayarda derleseniz bile .deb paketini kendiniz yapmak her zaman yararlıdır.
JanC

4

Buna göre yazı size derleyen sonra bir .deb paketini oluşturabilir. Sonra "make install" yerine .deb paketinden kurabilirsiniz. Bu, paketin güncellemeyi izleyen paket yöneticisi tarafından yönetileceği için güncellenmeyi kolaylaştırır (eğer bazı bir depodaysa).

Kaynaklardan "some-package" paketi oluşturmak ve bağımlılıklar olması durumunda, paketinizi derlemeniz için gereken tüm bağımlılıkları otomatik olarak izlemek için "apt-get build-dep some-package" komutunu deneyebilirsiniz. bağımlılık kendiniz. Bu şekilde, bağımlılıklar da paket yöneticisi tarafından yönetilir ve otomatik olarak da güncellenmelidir.


3

gitKullanıcılar için başka bir alternatif belirtmeye değer:

Daha git pullönce git clonekaynak kodunuzu güncellemek ve ardından programınızı yeniden derlemek için de kullanabilirsiniz . ( gitDosyaları daha ayrıntılı takip etmek için de kullanabilirsiniz : cevaba bakınız .)

Başlangıçta git clonekaynak kodunu alıyorsanız, örneğin,

git clone git://github.com/person/programname.git

ve derledikten ve yükledikten sonra klasörü koruduğunuzda, klasöre cd edip git pullen son taahhütleri almak için çalıştırabilirsiniz . Ardından, oluşturmuş ve / veya çalıştırmış olabileceğiniz derleme dizinlerini kaldırın make clean(uygunsa) ve sonra yazılımı tekrar derleyin ve kurun checkinstall, bu da sizin için bir paket oluşturur (dağıtım için uygun olmasa da).

Ancak, bir programın geliştirilmesine yardımcı oluyorsanız ve her gün git pullsonra yeniden derlemeniz gerekiyorsa, /usr/local/her seferinde hiyerarşiye yüklemeniz gerekmeyeceği için muhtemelen ana klasöre yüklenirsiniz .

Bir örnek olarak, eğer bir programı test ediyor ve düzenli olarak yeniden derliyorsam, en son taahhütleri git pullalıp çalıştırdıktan sonra (bu belirli program için) cd'yi derleme klasörüne gönderirim :

cmake .. -DCMAKE_BUILD_TYPE=Debug -DLAYOUT=home -DPREFIX=home

ve test etmek için hata ayıklama sürümünü derleyin.

Bununla birlikte, git klonlanmış programınızın her ay yeni bir sürümünü derlemek istiyorsanız (ve test etmiyor veya hata ayıklamıyorsanız) genellikle /usr/local/hiyerarşiye kurarsınız checkinstall.


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.