状況によっては、dpkg -i <packagename>
を使用してローカルパッケージを手動でインストールする必要があります。場合によっては、そのパッケージでapt
の機能を活用するとさらに役立つことがあるため、質問は次のとおりです。
Xubuntu 13.04/UbuntuのようなDebianベースのLinuxディストリビューションを使用して、ランダムパッケージのローカルリポジトリをすばやく作成するにはどうすればよいですか?
これは、公式リポジトリから 完全なパッケージツリーを複製 および 微調整ソースの優先順位 を試みている状況とは区別する必要があります。ランダムパッケージとは、仮想パッケージ、つまり、ローカルでコンパイルされるか、テスト目的で断片的にコピーされるパッケージを意味します。これが今の簡単な設定です 廃止されたドキュメント 。
まず、パッケージをホストするディレクトリを作成します。
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 の目的に役立ちます。
Debootstrapのようなツールに必要な完全な構造を持つリポジトリを作成する場合、私が見つけた最も簡単な方法は次のとおりです。
リポジトリディレクトリを作成します。
# mkdir -p /opt/debian
Confサブディレクトリを作成します。
# mkdir /opt/debian/conf
次のような内容の/ opt/debian/conf/distributionsファイルを作成します(使用しているディストリビューションに合わせて調整してください):
Label: Local APT repository
Codename: jessie
Architectures: AMD64
Components: main
Description: Local APT repository for debootstrap
Repreproでパッケージをインポートします。
# reprepro -b /opt/debian includedeb jessie /path/to/package.db
シェルのforループを使用して一連のパッケージをインポートします。 APTキャッシュからのすべて:
# cd /var/cache/apt/archives
# for DEB in *.deb; do reprepro -b /opt/debian includedeb jessie $DEB; done
これにより、署名されていないアーカイブが作成されます。 --no-check-gpgオプションを指定したdebootstrapで使用できます。