場合によっては、ローカルパッケージを手動でインストールする必要がありますdpkg -i <packagename>
。時にはパッケージの機能を活用する方が便利ですので、apt
質問は次のとおりです。
Xubuntu 13.04/UbuntuなどのDebianベースのLinuxディストリビューションを使用して、ランダムパッケージのローカルリポジトリをすばやく作成するには?
答え1
これは試している場合と区別する必要があります。フルパッケージツリーのコピー公式リポジトリからソース優先順位の微調整。ランダムパッケージは、ダミーパッケージ、すなわちテスト目的でローカルにコンパイルまたは断片的な方法でコピーされるパッケージを指す。これは簡単な設定に基づいています。古い文書。
まず、パッケージをホストするディレクトリを作成します。
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-get update
この時点で、他のパッケージと同様に、ローカルリポジトリからパッケージをインストールできますapt-get install <packagename>
。ローカルリポジトリに新しいパッケージが追加されたら、そのパッケージをdpkg-scanpackages
更新するために再定義されたコマンドを実行する必要があります。package.gzファイルを更新する必要があり、apt
新しいパッケージを使用できるようにするには、まず更新する必要があります。これがあなたに役立つことを願っていますテスト目的。
答え2
しかし、同様の答えがすでに存在しています。そしてAUにも同様の答えがいくつかありますapt-ftparchive
また、代わりに使用を提案するためにこの回答を投稿しています。dpkg-scanpackages
なぜapt-ftparchive
ダメなのdpkg-scanpackages
?
dpkg-scanpackages
このコマンドは、dpkg-dev
配布用のインストールイメージに付属していないパッケージで提供されています。dpkg-dev
このコマンドを使用するには、まずパッケージをインストールする必要がありますdpkg-scanpackages
。ローカルストレージを設定する目的は、通常、インターネットに接続されていないコンピュータでオフラインでパッケージを管理することです。しかし、apt-ftparchive
コマンドは、apt-utils
ディストリビューションの共通インストールイメージとともに提供されます。したがって、追加のパッケージをインストールする必要はありません。パッケージ管理のためにdpkgの代わりにaptを使用する予定ですが、パッケージをスキャンするためにaptを使用するのはどうですか? :)
APTローカルストレージを設定するには?
ステップ1:debsを配置するディレクトリを作成します。
$ mkdir ~/apt-local-repository
ステップ2:ストレージリストの上部にローカルディレクトリを追加します。/etc/apt/sources.list
$ head -n 1 /etc/apt/sources.list
deb [trusted=yes] file:/home/pandya/apt-local-repository/ ./
設定しない場合は、パッケージのインストール時にパラメータを設定する
[trusted=yes]
必要があります。--allow-unauthenticated
apt
この行はリポジトリリストの一番上に追加され、最も高い優先順位が与えられます。に追加すると、
/etc/apt/sources.list.d/
aptは(定義どおり)オンラインリポジトリからインストールを試み、/etc/apt/sources.list
ローカルリポジトリに低い優先順位を与えます。
ステップ3:借金を返済する~/apt-local-repository
ステップ4: インデックスパッケージリストの使用aptftparchive
$ cd ~/apt-local-repository/; apt-ftparchive packages . > Packages
ステップ5:更新適切なインデックス/データベースを使用するsudo apt update
完璧。これで、.dllを使用してdebパッケージをインストールできますsudo apt install <packagename>
。ローカルデータベースを変更するたびに、手順3〜5を繰り返します。
便利なヒント:
apt-cache policy <packagename>
APTがローカルのdebパッケージを認識し、最高の優先順位を与えることを確認するために実行できます。sudo apt-get --print-uris install <packagename>
すべての依存関係が満たされていること、または追加のパッケージをダウンロードする必要があることを確認するために実行できます。また、i)ftp://はローカルリポジトリのパッケージを表し、/またはii)http://はインターネットからダウンロードする必要があるパッケージまたは欠落している依存関係を示すURLもリストします。
次のツールを見ることもできます。エル岡ㅏ指す右リポジトリ中サイズアナグ私が作った。
答え3
debootstrapのようなツールに必要な構造全体でリポジトリを作成したい場合は、私が見つけた最も簡単な方法は次のとおりです。
ストレージディレクトリを作成します。
# mkdir -p /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で使用できます。