Debian tabanlı linux dağıtımı kullanarak rasgele paketler için hızlı bir şekilde yerel bir apt havuzu nasıl oluşturulur?


20

Bazı durumlarda kullanarak yerel bir paketi manuel olarak yüklemeyi gerektirir dpkg -i <packagename>. Bazen bu aptpaketin işlevselliğinden yararlanmak daha da yararlı olabilir , bu nedenle soru:

Debian tabanlı bir linux dağıtımı kullanarak Xubuntu 13.04 / Ubuntu gibi rasgele paketler için nasıl hızlı bir şekilde yerel bir havuz oluşturursunuz?


Sadece FYI. Her zamanki şey takip etmektir dpkg -i <packagename>ile apt-get -f installgerekli paketler halinde çekme için. Ayrıca, Debian için uygun bir depo oluşturmak için olağan şey reprepro'dur.
Faheem Mitha

Reprepro'yu yararlı buldum
Gilles 'SO- kötü olmayı kes'

Yorumlarınız için teşekkür ederim. @Faheem Mitha: aptile --fix-brokenyerel bir paket kurduktan sonra niçin birlikte çalışmak gerektiğini kısaca anlatabilir misiniz dpkg -i? Dpkg bununla ilgilenmez mi? Ben okudum ilk kez gerekli olabilir okudum ? @ FM & Gilles: Reprepro hakkında . Çalışmak için eğer alabilirim yararlı görünüyor (dir struct, zamanında 3 dosya veya params içeriği hakkında emin değilim). Tekrar deneyecek ve tüm soruyu güncelleyecek veya gönderecektir.

1
@ illuminÉ: dpkgbağımlılıkları çözmez, çözer apt. dpkgkırık bağımlılıkları uyarır, ancak düşük seviyelidir, bu yüzden bunları düzeltmeye çalışmaz. dpkg -i *.debArdından apt-get -f installstandart bir prosedürdür. aptKendisi yerel paket kurulumunu ele almak için bir istek listesi hatası var ve bence bir yama bile var, ancak henüz uygulanmadı. Bkz. Apt-get install yerel paket dosyalarını da yükleyebilir , 1999'da dosyalandı.
Faheem Mitha

@ illuminÉ Bu özelliğe ilgi duymak zarar vermez. Bence (kibarca) ilgiyi ne kadar çok ifade ederse, bunun gerçekleşme olasılığı o kadar yüksek olur. Hata raporunda belirtildiği gibi gdebi'nin bir alternatif olduğunu da unutmayın. Bence uygulanmamasının bir parçası. Her ne kadar böyle bir temel işlevselliğe sahip olmak apt'nin bir parçası olsa da, bu işlevselliği başka bir paketin parçası olarak kullanmaktan daha iyi olacaktır.
Faheem Mitha

Yanıtlar:


29

Bu, tam bir paket ağacını resmi bir depo ve ince ayar kaynakları önceliğinden çoğaltmaya çalıştığınız durumdan ayırt edilmelidir . Rastgele paketler, sanal paketler, yerel olarak derlenen veya test amacıyla parça parça bir şekilde kopyalanan paketler anlamına gelir. İşte artık kullanılmayan belgelere dayanan basit bir kurulum .

İlk olarak, paketleri barındırmak için bir dizin oluşturun:

mkdir <packagedir>

Sonra .deb paket dosyalarınızı oraya taşıyın. Bu komutu yeni oluşturduğumuz dizinin üstündeki dizinden yürütün (izinlerin buna izin verdiğinden emin olun!):

dpkg-scanpackages packagedir | gzip > packagedir/Packages.gz

Şimdi uzantılı bir dosya oluşturmak .listiçinde /etc/apt/sources.list.d/içeriklerle:

deb [trusted=yes] file:///path_to_dir_above_packagedir packagedir/

apt veritabanını güncelleyin:

apt-get update

Bu noktada yerel depomuzdaki paketler, diğer paketler gibi kurulabilir apt-get install <packagename>. Yerel depoya yeni paketler eklendiğinde dpkg-scanpackages, Packages.gz dosyasını güncellemek için belirtilen komut yeniden aptverilmeli ve yeni paketler kullanıma sunulmadan önce güncellenmelidir. Umarım bu test amaçları için yararlı olabilir .


6
Yeni apt 1.1 ile, biri ve URI [trusted=yes]arasında ( man sayfasına bakınız ) ihtiyaç vardır , aksi takdirde imza eksikliği nedeniyle başarısız olur. debfile:///sources.list(5)apt-get update
vinc17

2

Debootstrap gibi araçlar için ihtiyacınız olan tam yapıya sahip bir repo oluşturmak istiyorsanız, bulduğum en basit yol:

  1. Havuz dizini oluşturun.

    # mkdir -p /opt/debian
    
  2. Bir conf alt dizini oluşturun.

    # mkdir /opt/debian/conf
    
  3. Aşağıdaki içerikleri içeren bir / opt / debian / conf / dağılım dosyası oluşturun (kullandığınız dağıtım için uygun şekilde ayarlayın):

    Label: Local APT repository
    Codename: jessie
    Architectures: amd64
    Components: main
    Description: Local APT repository for debootstrap
    
  4. Paketinizi reprepro ile içe aktarın.

    # reprepro -b /opt/debian includedeb jessie /path/to/package.db
    
  5. APT önbelleğinizdeki her şey gibi bir paket for-shell içeren bir grup paketi içe aktarın:

    # cd /var/cache/apt/archives
    # for DEB in *.deb; do reprepro -b /opt/debian includedeb jessie $DEB; done
    

Bu imzalanmamış bir arşiv oluşturur. --No-check-gpg seçeneği ile debootstrap ile kullanılabilir.

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.