web-dev-qa-db-ja.com

DebianベースのLinuxディストリビューションを使用して、ランダムパッケージ用のローカルaptリポジトリをすばやく作成する方法は?

状況によっては、dpkg -i <packagename>を使用してローカルパッケージを手動でインストールする必要があります。場合によっては、そのパッケージでaptの機能を活用するとさらに役立つことがあるため、質問は次のとおりです。

Xubuntu 13.04/UbuntuのようなDebianベースのLinuxディストリビューションを使用して、ランダムパッケージのローカルリポジトリをすばやく作成するにはどうすればよいですか?

21
user44370

これは、公式リポジトリから 完全なパッケージツリーを複製 および 微調整ソースの優先順位 を試みている状況とは区別する必要があります。ランダムパッケージとは、仮想パッケージ、つまり、ローカルでコンパイルされるか、テスト目的で断片的にコピーされるパッケージを意味します。これが今の簡単な設定です 廃止されたドキュメント

まず、パッケージをホストするディレクトリを作成します。

mkdir <packagedir>

次に、そこに.debパッケージファイルを移動します。作成したディレクトリの上にあるディレクトリからこのコマンドを実行します(アクセス許可で許可されていることを確認してください)。

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

次に、.listに拡張子/etc/apt/sources.list.d/のファイルを作成し、次の内容を含めます。

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

aptデータベースを更新します。

apt-get update

この時点で、ローカルリポジトリのパッケージは、apt-get install <packagename>を使用して他のパッケージと同様にインストールできます。新しいパッケージがローカルリポジトリに追加されたら、規定のdpkg-scanpackagesコマンドを再度発行してPackages.gzファイルを更新し、aptを新しいパッケージが利用可能になる前に更新されます。うまくいけば、これは testing の目的に役立ちます。

30
user44370

Debootstrapのようなツールに必要な完全な構造を持つリポジトリを作成する場合、私が見つけた最も簡単な方法は次のとおりです。

  1. リポジトリディレクトリを作成します。

    # mkdir -p /opt/debian
    
  2. Confサブディレクトリを作成します。

    # mkdir /opt/debian/conf
    
  3. 次のような内容の/ opt/debian/conf/distributionsファイルを作成します(使用しているディストリビューションに合わせて調整してください):

    Label: Local APT repository
    Codename: jessie
    Architectures: AMD64
    Components: main
    Description: Local APT repository for debootstrap
    
  4. Repreproでパッケージをインポートします。

    # reprepro -b /opt/debian includedeb jessie /path/to/package.db
    
  5. シェルのforループを使用して一連のパッケージをインポートします。 APTキャッシュからのすべて:

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

これにより、署名されていないアーカイブが作成されます。 --no-check-gpgオプションを指定したdebootstrapで使用できます。

2
Andrew Klaassen