独自のローカルリポジトリを構築する理由はさまざまです。これは、帯域幅の使用量を節約するために多くのコンピューターで頻繁に使用されるパッケージをキャッシュするためのローカルミラーリポジトリを作成するための優れた方法です。または、開発チームが内部で利用できるようにするいくつかの変更されたパッケージがある場合があります。
このチュートリアルでは、ローカルのDebianパッケージリポジトリを簡単に作成する方法を紹介します。 、DebianおよびUbuntuバージョンと互換性があります。
ステップ1:必要なパッケージのインストール
Debianベースのシステムでは、すべてのリポジトリはAPTユーティリティ(apt、apt-get、apt-cacheなど)によって管理されます。 dpkg-devパッケージは、APTと互換性のあるローカルリポジトリの作成に必要です。
まず、次のコマンドを使用してシステムパッケージを更新します。
$ sudo apt update && sudo apt upgrade
次に、 dpkg-devをインストールします 次のように入力してパッケージ化します:
$ sudo apt-get install dpkg-dev
パッケージのインストールが完了したら、パッケージファイル用のディレクトリの作成に進みます。
ステップ2:ローカルリポジトリ用のディレクトリを作成する
バイナリパッケージを保持するディレクトリを作成します。この例では、/ opt / local / debsを使用しますが、任意のディレクトリを使用できます。
$ sudo mkdir -p /opt/local/debs
次に、ディレクトリを変更します:
$ cd /opt/local/debs
ステップ3:ローカルリポジトリディレクトリにパッケージを追加する
このチュートリアルでは、chrome-browserパッケージをローカルリポジトリにダウンロードします。これは、デフォルトのUbuntuリポジトリにはないためです。
$ sudo wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
このステップでは、必要な数のパッケージをコピーまたはダウンロードできます。
ステップ4:APTに必要なリポジトリパッケージメタを作成する
このためには、いくつかのdpkg-scanpackagesコマンドを実行する必要があります。 / opt / localディレクトリを使用してsudoの使用をスキップしているため、rootユーザーアカウントに切り替えます。
$ sudo su
まず、次のコマンドを実行してリリースファイルを作成します。
# dpkg-scanpackages . /dev/null > Release
ローカルリポジトリに追加したパッケージの数に応じて、同様の出力が得られるはずです。
dpkg-scanpackages: warning: Packages in archive but missing from override file:
dpkg-scanpackages: warning: google-chrome-stable
dpkg-scanpackages: info: Wrote 1 entries to output Packages file.
次に、ディレクトリ内のすべてのdebファイルをスキャンし、適切なPackages.gzファイルを作成します
# dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz
出力:
dpkg-scanpackages: warning: Packages in archive but missing from override file:
dpkg-scanpackages: warning: google-chrome-stable
dpkg-scanpackages: info: Wrote 1 entries to output Packages file.
ローカルリポジトリディレクトリに新しいdebパッケージを追加するたびに、これらのコマンドを実行する必要があることに注意してください。簡単なbashスクリプトを作成して、新しいパッケージを追加するたびに実行することもできます。
ローカルリポジトリのディレクトリ構造を一覧表示するには、lsコマンドを実行します。
$ ls -l
出力:
-rw-r--r-- 1 root root 83325072 May 8 02:29 google-chrome-stable_current_amd64.deb
-rw-r--r-- 1 root root 761 May 17 20:44 Packages.gz
-rw-r--r-- 1 root root 1321 May 17 20:39 Release
ステップ5:ローカルリポジトリをSources.listに追加する
最後のステップは、sources.listファイルを編集することです。選択したエディターを使用してファイルを編集します:
$ sudo nano /etc/apt/sources.list
次の行を/etc/apt/sources.listに追加します。
deb [trusted=yes] file:/opt/local/debs ./
次に、ローカルリポジトリの動作をテストします。
ステップ6:検証
ローカルリポジトリにパッケージをインストールまたは削除することで確認できます。
まず、パッケージを更新する必要があります:
$ sudo apt-get update
次に、apt-getを使用して通常どおりパッケージをインストールします:
$ sudo apt-get install google-chrome-stable
これで、Synaptic、aptitude、およびaptコマンド(apt-get、apt-cacheなど)を使用して、ローカルパッケージをインストール、更新、および削除できます。apt-getinstallを実行すると、依存関係が解決され、インストールされます。彼らが会うことができるので。
システムにインストールされているパッケージと同じ方法で、インストールされているパッケージを簡単に削除できます。
$ sudo apt-get remove google-chrome-stable
結論
このチュートリアルでは、独自のローカルDebianリポジトリを作成し、パッケージをローカルで追加/削除する方法を学びました。これらの手順は、ほとんどのDebianベースのディストリビューションに適用されます。