Debian sistemimi en son paketlerle nasıl saklayabilirim?


9

Sunucuma yüklediğim "Yazılım" ın çoğunun en son sürüm olması gerekiyor (Java, Tomcat, MySQL-Cluster). Bu yüzden hiç şansım yok, (dağıtımda) önceden hazırlanmış Debian paketleri var. Bu nedenle, tüm yazılım proje web sayfasından indirilir ve kaynaktan oluşturulur.

Şimdi sorum şu, Debian sistemime kurmanın doğru yolu nedir?

Benim asıl sorun, onları doğrudan kaynaktan yüklerken, paket yönetimine dahil edilmiyorlar (yetenekli). Checkinstall'un kullanılması önerilmiyor gibi görünüyor ve equiv'in dezavantajları var. Dh_make ve dpkg-buildpackage ile kendi paketlerimi oluşturarak bunu yapmanın tek doğru yolu var mı?

Her zaman en son sürüme ihtiyacınız varsa ne yapıyorsunuz?

Yanıtlar:


10

Daha yeni paketler istemek tüm işletim sistemlerinde sık karşılaşılan bir sorundur. Debian'ın serbest bırakma döngüsünün son yıllarda ortalaması 2 yıldır, bu nedenle bu döngünün sonuna doğru, belki de daha acil bir konudur. Bunu hafifletmenin bir yolu, bir sonraki sürüm neredeyse kararlı olduğunda, kararlı salım döngüsünün sonuna doğru teste geçmektir. Daha genel olarak test ve / veya dengesizlik konusunda kararlılıktan söz edip etmediği sorusu net değildir. Ne olursa olsun, en son sürüme sahip olmak kararsız çalışsa bile bir sorun olabilir, çünkü en son sürüm henüz paketlenmemiş olabilir. Debian geliştiricileri / paketleyicileri gönüllüdür, bu nedenle paketin bozulmasıyla sıkılabilir veya başka şeylerle meşgul olabilirler.

Basitlik ve somutluk için, planın bir paketi istikrarlı olarak tersine çevirmek olduğunu varsayıyorum, ancak daha genel olarak geçerlidir. Yani, kararlı bir şekilde mevcut olmayan daha yeni bir yazılım sürümünü yaklaşık bir sırayla istiyorum.

  1. Paketi Debian Backports'ta arayın . Bazen amaçlarınızı tatmin edecek kadar yeni bir paket bulabilirsiniz. Bununla birlikte, genellikle bu paketlerin kararsız veya deneysel veya yukarı akıştaki sürümle karşılaştırıldığında modası geçmiş olmasıdır.

  2. Paketi doğrudan test, kararsız veya deneysel olarak yüklemeye çalışın. Stabil, yüklemeye çalıştığınız sürümden çok farklı değilse, bu işe yarayabilir. Sistem temel paketleri daha yeni sürümden yüklemeye veya yükseltmeye çalışırsa bu yaklaşımın kötü olduğunu anlayacaksınız. Dengesizden yüklemeye çalıştığınızı varsayalım, o zaman

    apt-get install packagename/unstable
    

    denemek için ilk şey. Kararlı apt sürümleri ile, bu kararsız gelen diğer paketler gerektirdiğinden, genellikle başarısız olur ve bu büyültme sadece packagenamekararsız olarak kurulabilmesi için yeterince yüksek tercihini arttırır. Bunun ne anlama geldiğini anlamıyorsanız, gidin ve okuyun man apt_preferences. Temel paketleri yükseltmeye çalışmadığından emin olarak kararsızlardan bağımlılıklar eklemeye devam edin. Örneğin, libc6 veya X veya KDE veya Gnome'u yükseltmeye çalışırsa hemen iptal edin. Genellikle aynı kaynak paketinden diğer paketleri yükseltmeye çalışırsa, genellikle birbirine sıkıca bağlı olduğundan sorun olmaz. İkili paketin hangi kaynak pakete bağlı olduğunu görmek için şunu yapın:

    apt-cache showsrc packagename
    

    Birçok şey GNU C kütüphanesine (libc6) bağlı olduğu için bu eskiden bir problemdi. Daha yakın zamanlarda, API stabil hale gelmiş gibi görünüyor, bu yüzden şimdi yükseltmek zorunda kalmamaktan kurtulmak daha mümkün. Bir paket kararlı çalışma zamanı bağımlılıklarını karşılıyorsa, ancak yine de düzgün çalışmıyorsa, bir hata dosyası oluşturun. Paketleyici bunun bir hata olmadığını söylüyorsa yanlıştır. :-)

  3. Paketi denemeden, dengesiz veya deneysel olarak kendinize destekleyin.

    Yukarıda belirtildiği gibi, backports bir seçenektir, ancak genellikle bu paketler, dengesiz veya deneysel veya yukarı akıştaki versiyona kıyasla güncel değildir.

    Bu genellikle özyinelemeli bağımlılık oluşturma döngüsü türü bir şey gerektirebilir. Öncelikle derleme bağımlılıklarını

    apt-get build-dep packagename    
    

    Bağımlılıklardan biri yeterince yakın olmadığından bu başarısız olursa, önce bu bağımlılığı desteklemeniz gerekir. Bu kontrol dışı olabilir. Genellikle 2'den fazla özyineleme seviyesi ile uğraşmak zorunda kalırsam vazgeçerim. Bununla birlikte, gerçek bağımlılıkların belirtilen şekilde sıkı olması gerekmediğini unutmayın. eski bir sürüm işe yarayabilir. Paketleyici genellikle bir derleme (veya aslında çalışma zamanı) bağımlılığının en eski sürümünü bulmaya çalışmaz.

  4. Karşılık gelen yukarı akıştaki paketlerin kullanılabilirliğini kontrol edin. İdeal olarak bunlar dağıtım sürümünüzle eşleşir, ancak gerekirse bunları yeniden oluşturabilirsiniz.

  5. Yazılımın sürümü için test / kararsız / deneysel olan en yeni paketlerden daha yeni paketler oluşturun. Bu nispeten zor olabilir, ancak yine de bazen şaşırtıcı bir şekilde yapılabilir. Unutulmaması gereken ilk şey, zaten Debian'da bulunan bir paketin daha yeni bir sürümünü paketlemeye çalışıyorsanız, zaten büyük bir avantajla başlıyorsunuz, yani çalışmak için mevcut ambalajınız var. Sadece yap

    apt-get source packagename
    

    ve apt-getpaketin yaşadığı debian alt dizini de dahil olmak üzere ilgili kaynak paketi indirecektir. Ayrıca, bu günlerde, bu ambalajın genellikle bazı kontrol havuzunda (git Debian ile popüler gibi görünüyor) ve kararlı apt'in (şu anda 0.8.10.3 ) yaşadığını unutmayın apt-get source. Buna bakmalısınız, çünkü paketleyicilerin ambalajın herhangi bir piyasaya sürülenden daha yeni sürümleri olabilir. Örneğin.

    $ apt-get source mercurial
      Reading package lists... Done
      Building dependency tree       
      Reading state information... Done
      NOTICE: 'mercurial' packaging is maintained in the 'Svn' version control system at:
      svn://svn.debian.org/python-apps/packages/mercurial/trunk
    

    Alternatif olarak,

    apt-cache showsrc mercurial | grep Vcs
    

    havuzu listelemek için.

    Paket güncelliğini yitirmişse,
    pakette değişiklikler yapmanız , uygulanan yamaları yenilemeniz gerekebilir, ancak yine de genellikle iyi bir başlangıç
    noktasıdır. Debian
    , dpkg-kaynak 3.0 (yorgan) biçimine göre yorgan üzerinde paket yönetimini standartlaştırma sürecinde gibi görünüyor , bu nedenle yama yenilemeye yardımcı oluyor.

    Ben backported nasıl gerçek hayattan örnek ile bitireceğim Debian paketini ait PGF . Pgf'nin son paketlenmiş versiyonu 2008'de 2.00 idi ve o zamandan beri 2.10 piyasaya sürüldü. Tartışmaya bakınız PGF (2.10) en yeni kararlı sürümüne Lütfen güncelleme bir yama ile, ve benim takip hata, PGF: 2.0 Debian paketleme karşı yamalar . Anlaşıldığı üzere, pgf'nin Debian ambalajı çok basitti ve çalışmasını sağlamak için 2.10 ambalajındaki bir satırı değiştirmek zorunda kaldım. Ben de tüm lintian şikayetlerini quelling sona erdi , ama bu kesinlikle isteğe bağlı oldu.


İlk paragrafın son cümlesi yanıltıcı olabilir. Lütfen sorunun yalnızca bazen meydana geldiğini açıkça belirtin . Koyduğunuz şekilde DD'ler genellikle böyle görünüyor.
tshepang

@Tshepang: İyi bir nokta. Şimdi iyi mi?
Faheem Mitha

Evet, çok daha iyi.
tshepang

5

Kesinlikle kendi paketlerinizi oluşturabilirsiniz ve bu işe yarayacaktır. Ancak istediğiniz ne varsa orada ilk önce backports kullanmanızı tavsiye ederim .

Backport'lar Debian tarafından korunur ve onlar için güvenlik güncellemeleri alırsınız.


3

Kendi paketlerinizi oluşturmak da (IMHO) bir yoldur. Debian'ın bir paketin sürümüne ve neyin değiştiğine bağlı olarak, bu, paket açıklamasında kaynak tarball'ın dosya adını değiştirmek kadar kolay olabilir ve en kötü durumda yine de kendi sürümünüz için bir şablon olarak kullanabilirsiniz.


1

Her zaman en son sürüme ihtiyacınız varsa ne yapıyorsunuz?

  1. Daha önce de belirtildiği gibi , backport kullanın.

  2. Debian paketlerinin yalnızca küçük bir alt kümesi desteklenir, bu yüzden Debian Testini kullanmanızı öneririm . İstikrar ve yenilik arasında güzel bir denge sunar ve bir bakıma yuvarlanan bir dağıtım gibi.

  3. Biraz daha cesursanız Debian Kararsız'ı kullanın . Oldukça istikrarlı olduğu iddia ediliyor. Hatta bazıları, diğer bazı dağıtımların "kararlı" sürümlerinden daha kararlı olduğunu iddia ettikleri kadar ileri gider. Her neyse, Kararsız, yeni paket sürümlerinin normalde bulunduğu yerdir. Teste geçmeden önce teste izin vermek için normalde yaklaşık 10 gün orada otururlar.

  4. Bu ikisini kullanarak bile, kendinizi en son sürümlere sahip olmadığınızı görebilirsiniz. Bu durumda Debian Experimental'a bir göz atın . Normalde yeni paketler normal arşivler için çok rahatsız edici olduğunda kullanılır (Kararsız ve Test).

  5. Experimental hala yeterince yeni yazılım sürümüne sahip değilse, Ubuntu'nun PPA'larına bakın . Yukarıdaki tüm arşivlerin eksik olduğundan daha yeni yazılım sürümleri gördüm. Ancak Ubuntu Debian ile% 100 uyumlu olmadığından dikkatli kullanın (ancak çoğu durumda herhangi bir sorun olmamalıdır).

  6. Yukarıdakiler başarısız olursa, sanırım belirtildiği gibi sadece kendi paketlerinizi oluşturun .


Debian'ın kararsızlığının diğer dağıtımların istikrarından daha istikrarlı olduğunu söyleyen insanlar en iyi şaka yapıyorlar. Her gün dengesiz değişiklikler, kararlı sabit bir havuzdur. Kararsızlık, çökeceği anlamına gelmez, ancak geliştiricilerin paketler üzerinde çok fazla değişiklik yaptığı anlamına gelir. Kararlı, yayınlandığı anlamına gelir ve yalnızca güvenlik düzeltmeleri eklenir. Tutarsız çökmeler hiç aklıma gelmedi. Tho yükseltmek sonra paketleri kırmak ve bağımlılık sorunları gördün mü dikkat ;-) Tüm bu diğer distro "kararlı" sürümleri ile karşılaştırır nasıl ötesinde. Bu bağlamda "daha istikrarlı" diye bir şey yoktur. Değişir ya da değişmez.
Arjan Drieman

@ ArjanDrieman: Aslında bu insanlar şaka yapmıyorlar ve bu bağlamda daha fazla çarpmaya karşı dayanıklı olduklarından bahsediyorlar.
tshepang

Hala en iyileri şaka yapıyorlar. Gerçekten insanların bunun hakkında şaka yaptığını gördüm. Bir mikro dağıtım alevi ;-) Zaman içinde birkaç dağıtım kullandım ve diğerlerinden herhangi birini çalıştıran garip çökmeler yaşamadım, Ciddi olarak araştırma veya istatistiklerle destekleyemeyeceğini söyleyen insanlar. Bu cehalet, kibir, önyargı, herhangi bir şey olabilir ... ama bu bir şakadan daha mı iyi? Bana bu gizemli "Bazılarının" kim olduğunu söyleyebilir misin? Onlardan araştırmalarını isteyebilir miyim? "Bazıları bile ileri gidiyor" ... bunlar gelincik kelimeler. Bir cevap, gerçekler veya popüler görüş ve belirsiz iddialarda ne istersiniz?
Arjan Drieman

1
@Arjan Drieman: Aslında kararsız kabul ediyorum, 'somtimes' ismine kadar yaşayabilir. Sen kenarına yaklaşmak için istikrar ticaret, durum böyle olmadığını iddia eden herkes en iyi ihtimalle ihtiyatlı. Genel olarak şaşırtıcı derecede kararlıdır, ancak istikrar kararsızlık için en yüksek öncelik değildir. 'Kaygan' ibadet konusunda da aynı fikirdeyim. Herhangi bir mutlak / doğrudan ifadeye derhal saldırıldığı için neredeyse bir savunma mekanizması.
JM Becker
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.