Kaynaktan yüklenen yazılımlar nasıl yönetilir?


14

Zaman zaman, çeşitli nedenlerden dolayı kaynaktan bir şey yüklememiz gerekebilir. Uygun bağımlılıklar verildiğinde yazılımın nasıl kurulacağı oldukça standart olsa da, ileride kolaylık sağlamak için bu tür kurulumların nasıl yönetileceği açık değildir.

Daha spesifik olarak:

  1. Kolay ve temiz bir kaldırma sağlamak için ne yapabiliriz (kaynaktan yüklenen yazılımdan hemen önce ve sadece yüklenen bağımlılıklar dahil)?

  2. Aynı yazılımın kolay ve temiz bir şekilde yükseltilmesini sağlamak için ne yapabiliriz, ki bu yazılım tekrar kaynaktan yeniden yüklenir

  3. Varsayılan bir paket (apt-get kullanılarak yüklenir) ve paketin (daha yeni) sürümü (kaynaktan yüklenir) varsa, olası çakışmayı en aza indirmek için ne yapabiliriz?

Yanıtlar:


8

Kullanmak checkinstall make installgeçici bir paket oluşturacak ve yükleyecektir. Bu, paket yöneticisine kaydedildiği ve kaldırılabileceği anlamına gelir.


7

Yapılacak en iyi şey, yeni sürümlerin Debian paketlerini kendiniz yapmak olacaktır. dpkgve aptaraçlar bahsettiğiniz ve bu amaç için tasarlanan üç şeyi de yapar. Tekerleği yeniden icat etmek yerine kullanın. Ambalaj üzerinde çok sayıda kılavuz mevcuttur. Yazılım depolarda zaten varsa, muhtemelen apt-get srckendi paketinizi incelemek ve başlatmak için kullanabileceğiniz kaynak paketi ( ) alabilirsiniz.

Https://askubuntu.com/a/485230/158442 adresine verilen bu yanıt genel bir kılavuz olarak faydalı olabilir.

checkinstallHızlı ve kirli bir çözüm için harika olsa da, uzun süreli uygun ambalaj kullanmalısınız.


öneriler için teşekkürler. 'Yazılım depolarda zaten var' dediğinde, Ubuntu tarafından sağlanan resmi depoları kastettiğini varsayıyorum. Öyleyse, çoğu durumda bu depolar özellikle eski Ubuntu sürümlerinde daha yeni sürümler sağlamaz. Yani apt-get srcmuhtemelen bu gibi durumlarda yardımcı olamaz.
skyork

@skyork belki de bilmiyorlar. Ancak çalışmak için eski sürümlerin paketlerini kullanabilirsiniz. Paketleyicilerin yaptığı bazı özelleştirme, bazı özel bakım komut dosyaları olabilir. Tüm bunları görmezden gelmeniz ve sıfırdan başlamanız için hiçbir neden yok. Tekerleği yeniden keşfetmek burada bir tema gibi görünüyor.
muru

4

Her şeyden önce, kaynak kodlarınızı nasıl yönettiğinize bağlı. ~/sourcesDiğerleri her program için yeni bir dizin oluşturacakken, her programı onun gibi bir dizin hazırlayıp alt dizinlerine koyarım.

Benzer şekilde benim gibi bazıları, her yeni sürüm için yeni bir alt alt dizin oluşturun ve eski sürümleri yalnızca yeni sürümde çalışmamı durduracak önemli bir hata olmadığından emin olduktan sonra kaldırın.

Bunu yapmanın tek bir yolu yoktur, ancak hangi yolu seçerseniz seçin, yönetmeniz için en kolay yolu seçin .

  1. Temiz Kaldırma

    • rem_dep.shBöyle bir komut dosyası oluşturmayı öneririm .

      #! /bin/bash
      sudo apt-get remove dep1 dep2 ... depn
      

      dep1, dep2, depnbağımlılıklar nerede .

  2. Temiz ve kolay yükseltme

    • Eğer böyle bir otomatik sürüm sistemden kaynak kodunu alırsanız gitya bazaarya bağlantılar öngörülebilir olup olmadığını hangi edecek bir shell script oluşturabilir

      #1 make a backup of earlier version
      #2 get new source
      #3 configure, build/make the source
      #5 if make went correctly, remove earlier version.
      #6 make install new version, update dependencies if required.
      
    • Diğer durumlarda da, bir dereceye kadar manuel çalışma ile bu tür komut dosyaları oluşturabilirsiniz.

  3. Çatışma yönetimi

    • En iyi yol, --prefixyazılımları ve orada bağımlılıkları yüklerken seçeneği kullanmaktır .
    • Diğer önemli şey, çatışmaları en aza indirgemek için sisteminizi güncel tutmaktır.

NOT: Kendinizi olması gerekenden daha fazla yazılım derliyorsanız ( max_limit5 veya 10 veya 100 gibi kendiniz için bir set ) Ubuntu'dan ayrılıp Arch Linux'a geçmeniz en iyisidir.


3

İnşa bağımlılıkları:

  • AFAIK manuel olarak kaydedilmelidir. Elle yüklenen bağımlılıkların listesini tutmak için README gibi bir dosya oluşturabilirsiniz.

  • Bu yazılım zaten Ubuntu veya PPA depolarında yerleşik bir ikili dosyaya sahipse. Kurulum sırasında bağımlılıkları izlemek daha kolay olmalıdır:

    sudo apt-get build-dep target_package
    

Temiz kaldırma:

Yapılandırılmış ve yüklenmiş kaynak klasörü saklayın . Yüklü bağımlılıklar dosyasıyla belirli bir klasördeki tüm kaynakları toplarsanız daha iyi olur.

Temiz yükseltme ve kurulu dosyalar yalıtımı:

Bunları spesifik --prefix(tercihen --prefix=/opt/software_name-version/) olarak takın .

Bu birçok sorunu çözecektir: depodaki sürümle eşzamanlı sürümler; temiz yükseltme; kaynağın silinmesi durumunda kirli kaldırma için daha kolay.

Daha karmaşık veya en iyi yol, muru cevabı olarak, Debian paketi oluşturun (Ubuntu / PPA depolarında bulunan paketler için)

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.