このガイドでは、Ubuntu Bionicに基づいてローカルリポジトリサーバーを構成する方法を説明しますが、以前のバージョンのUbuntuや、DebianやMintなどのメインパッケージ管理システムとしてAptitudeを使用するディストリビューションにも適合させることができます。通常、インターネット帯域幅を節約するためにローカルリポジトリを設定することをお勧めします。
このチュートリアルでは、次のことを学びます。
- 必要なソフトウェアをサーバーにインストールする方法
- サーバーにミラーリングするリポジトリを選択する方法
- 選択したリポジトリをサーバー上でローカルにミラーリングする方法
- ローカルリポジトリサーバーを使用するようにLinuxクライアントを構成する方法
上記のように、このチュートリアルではパブリックミラーまたはカントリーミラーを検討していませんが、実装する場合は次のことを考慮してください。
- ネットワーク帯域幅が非常に重要になります
- リポジトリをUbuntuのミラーリストに登録する必要があります
- 少なくとも1日に4回ミラーを同期する必要があります
- 以前のすべてのバージョンをミラーリングする必要があるため、2TB以上のディスク容量が必要になる場合があります
ローカルリポジトリからパッケージリストを更新しています。
使用されるソフトウェア要件と規則
カテゴリ | 使用する要件、規則、またはソフトウェアバージョン |
---|---|
Ubuntu 18.04.2(バイオニックビーバー)LTS | |
Apache http 2.x、apt-mirror | |
rootまたはsudo を介したLinuxシステムへの特権アクセス コマンド、リポジトリ用の最小200GBのディスク容量 | |
# –指定されたLinuxコマンドは、rootユーザーとして直接、または sudo を使用して、root権限で実行する必要があります。 コマンド$ –特定のLinuxコマンドを通常の非特権ユーザーとして実行する必要があります |
Ubuntuリポジトリサーバーを段階的に作成する方法
- 必要なソフトウェアをサーバーにインストールします。
最初のステップとして、
apache2
という名前のパッケージの下にあるApacheHTTPサーバーをインストールする必要があります。 、コマンド:$ sudo apt install apache2
ApacheHTTPのインストール次に、起動時にサービスが実行されていることを確認します。
$ sudo systemctl enable apache2
すべて問題がなければ、デフォルトのDocumentRootディレクトリ(/ var / www / html)に移動します。
そこで、サブディレクトリ/ var / www / html / ubuntu
> 適切な所有者(この場合はwww-data
)に割り当てます (Apache HTTPを実行するユーザー)。$ sudo mkdir -p /var/www/html/ubuntu $ sudo chown www-data:www-data /var/www/html/ubuntu
DocumentRootまたは少なくともubuntuサブフォルダーは、論理ボリュームに属するファイルシステム上にあることを強くお勧めします。このようにして、ダウンタイムなしでオンラインで拡大できます。
テストの時点で、srcパッケージもミラーリングする場合、171.5GiBが必要な絶対最小スペースです。したがって、将来の計画を立てるには、少なくとも300GiBのディスク容量を確保することをお勧めします。これは主に、Ubuntuの1つのバージョンを選択した場合の見積もりです。異なるバージョンのパッケージをミラーリングする必要がある場合、必要なスペースは大幅に増加します。
- ローカルリポジトリを作成できる主なツールは
apt-mirror
です。 、それをインストールするには実行します:$ sudo apt install apt-mirror
パッケージが見つからない場合は、最初にパッケージリストを次のように更新してください。
$ sudo apt update
- サーバーにミラーリングするリポジトリを選択します。
apt-mirrorをインストールしたら、その構成ファイル
/etc/apt/mirror.list
のバックアップコピーを作成できます。 、その後、オプションset base_path
を含む行を確認します リポジトリの正しいパスを指します(デフォルトは/ var / spool / apt-mirrorです)。$ sudo cp /etc/apt/mirror.list /etc/apt/mirror.list.org
これで、お気に入りのエディター(viやnanoなど)を使用して、mirror.listファイルのbase_pathオプションを
mirror.list構成ファイル/ var / www / html / ubuntu
に変更できます。;また、常にmirror.list構成ファイルで、bionicディストリビューションをミラーリングしていることを指定する必要があります(Ubuntuのバージョンが異なる場合はそれに応じて変更してください)。ディスクに十分なスペースがない場合は、srcパッケージをミラーリングしないことを選択できます。したがって、相対的な行にコメントします:
mirror.list構成ファイル次に、重要なスクリプトを
/ var / www / html / ubuntu / var /
にコピーします$ sudo mkdir -p /var/www/html/ubuntu/var $ sudo cp /var/spool/apt-mirror/var/postmirror.sh /var/www/html/ubuntu/var/
- 選択したリポジトリをサーバー上でローカルにミラーリングします。
次に、ローカルミラーを作成します。最初のミラーリング(
>archive.ubuntu.com
から)に注意してください。 このチュートリアルの場合のみ)時間がかかり、接続が遅くなる可能性があるため、このジョブを夜間に開始することをお勧めします。
リモートリポジトリパッケージのローカルサーバーへのミラーリングを開始するには、次のコマンドを実行するだけです。$ sudo apt-mirror
必要に応じて、このプロセスを(従来のCTRL + Cコンボを使用して)中断し、後で再開することができます。残ったところから再開します。
最終的には、clean.shスクリプトとpostmirror.shスクリプトが実行される時点に到達します。これは、ミラーリングプロセスが完了したことを示しています。
ミラーリングプロセスの終了。 - cronスケジューラを使用して自動同期プロセスを構成します。
最初の同期が完了したら、cronジョブを作成して、自動的に最新のローカルリポジトリがあることを確認する必要があります。たとえば、このタスクを毎晩午前2時に実行する必要があるため、次のようになります。
$ sudo crontab -e
次に、crontabを編集して、次の行を追加します。
00 02 * * * /usr/bin/apt-mirror
そして、保存して終了します(vi、nano、または設定されているエディターを使用)。
ローカルリポジトリサーバーを使用するようにLinuxクライアントを構成する
- ローカルリポジトリリストの設定。
ローカルリポジトリを使用するクライアントでは、構成ファイル
/etc/apt/sources.list
を編集する必要があります。 ローカルリポジトリを指定し、リモートリポジトリを無効にします。この場合、次のリポジトリがダウンロードされています。
サーバーローカルリポジトリ注
/etc/apt/sources.list
の任意の行にコメントを付けることをお勧めします サーバーにミラーリングされていないリポジトリを参照するファイル。たとえば、この場合、deb-src
で始まる行bionic-backports
を含む コメントされました。そうしないと、エラーが発生する可能性があります
リリースファイルが見つかりません
クライアントでコマンドaptupdateを実行するとき。まず、文字列archive.ubuntu.comをローカルミラーIP(この場合は10.0.0.42)に置き換えます。もちろん、ローカルIPアドレスは異なる場合があります。
$ sudo sed -i.bak0 "s/archive\.ubuntu\.com/10\.0\.0\.\42/g" /etc/apt/sources.list
このコマンドは、バックアップファイル
/etc/apt/sources.list.bak0
を作成しますarchive.ubuntu.com
を置き換えます10.0.0.42
の文字列 。さらなる調整がこのように再び実行されています:
$ sudo sed -i.bak1 "s/ubuntu/ubuntu\/mirror\/archive\.ubuntu\.com\/ubuntu/g" \ /etc/apt/sources.list
apt-mirrorがパス
mirror/ archive.ubuntu.com / ubuntu
を追加するため、これが必要です。 私たちのベースパスに。ここで、さらにバックアップファイルが作成されます/etc/apt/sources.list.bak1.
このチュートリアルでは、archive.ubuntu.comのパッケージまたはリポジトリのみをミラーリングしています。もちろん、サーバーのmirror.listファイルに他の非公式リポジトリを追加することもできますが、そこでapt-mirrorを再実行し、それに応じて任意のクライアントでsources.listファイルを編集する必要があります。
- ローカルリポジトリインデックスを更新します。
次に、ポート80がクライアントファイアウォールによってブロックされていないことを確認してから、次を実行できるようにする必要があります。$ sudo apt update
そして、あなたは行く準備ができています。
ローカルリポジトリからパッケージリストを更新しています。
結論
Ubuntuでローカルリポジトリを設定するのは難しいことではないように思われるかもしれませんが、十分なローカルネットワークとディスクリソースがあれば便利です。