UbuntuおよびDebianシステムで「apt-mirror」を使用してローカルリポジトリを設定する方法

今日のトラフィックや一般的なインターネットのスピードはティーンのギガで測定されているため、LAN内にローカルリポジトリキャッシュを設定する目的は何かと思うかもしれません。

Setup Local Repositories in Ubuntu

その理由の1つは、インターネットの帯域幅を削減し、ローカルキャッシュからパッケージを高速で取得することです。しかしながら、もう1つの主な理由はプライバシーです。組織内のクライアントがインターネット制限されている場合でも、彼らのLinuxボックスがソフトウェアやセキュリティの定期的なシステム更新が必要であったり、新しいソフトウェアパッケージが必要である場合があります。さらに進んで考えると、プライベートネットワーク上で実行され、制限されたネットワークセグメントのみに機密情報を含み、一般のインターネットに公開されるべきではないサーバーが存在すると想像してみてください。

これは、LANにローカルリポジトリミラーを構築し、この作業用にエッジサーバーを割り当て、内部クライアントをキャッシュミラーからソフトウェアを取り出すように構成するべき理由のいくつかです。

Ubuntuは、公式のUbuntuリポジトリとローカルキャッシュを同期するためのapt-mirrorパッケージを提供しており、このミラーはHTTPFTPサーバーを介して構成され、そのソフトウェアパッケージをローカルシステムクライアントと共有します。

完全なミラーキャッシュを作成するには、サーバーには少なくとも120Gの無料スペースが必要です。

必要条件

  1. 少なくとも120Gの無料スペース
  2. 匿名モードでインストールおよび構成されたProftpdサーバー

ステップ1:サーバーの構成

1. まず最初にやるべきことは、Ubuntu Archive Mirrorページを訪れて、最寄りで最速のUbuntuミラーを特定することです。あなたのを選択してください。

Ubuntu Archive Mirror

もし貴国に複数のミラーがある場合は、ミラーアドレスを特定し、pingtracerouteの結果に基づいてテストを行う必要があります。

Select Mirror Location

2. 次のステップは、ローカルミラーリポジトリを設定するために必要なソフトウェアをインストールすることです。apt-mirrorproftpdパッケージをインストールし、proftpdをスタンドアロンのシステムデーモンとして設定してください。

$ sudo apt-get install apt-mirror proftpd-basic
Install apt-mirror Proftpd
ProFTPD Configuration

3. さて、apt-mirrorサーバーを構成する準備が整いました。最寄りの場所(ステップ1)を追加して、パッケージをダウンロードするシステムパスを選択するために、/etc/apt/mirror.listファイルを開いて編集してください。デフォルトのミラーが十分に速い場合や急いでいない場合には、任意で、それを行う必要はありません。デフォルトでは、apt-mirrorはローカルキャッシュとして/var/spool/apt-mirrorを使用しますが、このチュートリアルではシステムパスを変更し、set base_pathディレクティブを/opt/apt-mirrorに設定します。

$ sudo nano /etc/apt/mirror.list
Configure apt-mirror Server.

また、クリーンディレクティブの前に、Debianソースを含めた他のソースリストをコメントアウトまたは追加することができます。これは、クライアントが使用するUbuntuバージョンに依存します。お好みで12.04などのソースを追加することもできますが、より多くのソースを追加するとより多くの空き容量が必要です。

Debianのソースリストについては、Debian WikiまたはDebian Sourcesリストジェネレーターを参照してください。

4.今すぐ必要なことは、パスディレクトリを作成し、apt-mirrorコマンドを実行して公式のUbuntuリポジトリをローカルミラーと同期させることです。

$ sudo mkdir -p /opt/apt-mirror
$ sudo apt-mirror
Create apt-mirror Paths

apt-mirrorは、インデックス作成とアーカイブのダウンロードを進め、ダウンロードされたパッケージの総数とサイズを表示します。110-120 GBのダウンロードにはかなりの時間がかかることが想像できます。

lsコマンドを実行してディレクトリの内容を表示できます。

Verify apt-mirror Paths

初回のダウンロードが完了すると、将来のダウンロードは小さくなります。

5.apt-mirrorがパッケージをダウンロードする間に、Proftpdサーバを設定できます。まずやるべきことは、次のコマンドを実行してproftpdの匿名構成ファイルを作成することです。

$ sudo nano /etc/proftpd/conf.d/anonymous.conf

その後、次の内容をanonymous.confファイルに追加し、proftdサービスを再起動します。

<Anonymous ~ftp>
   User                    ftp
   Group                nogroup
   UserAlias         anonymous ftp
   RequireValidShell        off
#   MaxClients                   10
   <Directory *>
     <Limit WRITE>
       DenyAll
     </Limit>
   </Directory>
 </Anonymous>
Configure ProFTPD

6.次のステップは、バインドマウントを発行してapt-mirrorのパスをproftpdのパスにリンクすることです。

$ sudo mount --bind /opt/apt-mirror/mirror/archive.ubuntu.com/  /srv/ftp/
Mount apt-mirror to ProFTP Path

確認するには、パラメータやオプションを指定せずにmountコマンドを実行してください。

$ mount
Verify Paths

7.最後のステップは、Proftpdサーバーがシステム再起動後に自動的に起動することを確認し、mirror-cacheディレクトリがftpサーバーパスに自動的にマウントされるようにすることです。Proftpdを自動的に有効にするには、次のコマンドを実行してください。

$ sudo update-rc.d proftpd enable

Proftpdにapt-mirrorキャッシュを自動的にマウントするには、/etc/rc.localファイルを開いて編集してください。

$ sudo nano /etc/rc.local

exit 0ディレクティブの前に次の行を追加してください。マウントを試行する前に5秒の遅延を使用してください。

sleep 5
sudo mount --bind  /opt/apt-mirror/mirror/archive.ubuntu.com/ /srv/ftp/
Auto Mount Apt Mirrors

Debianリポジトリからパッケージを取得する場合は、以下のコマンドを実行し、上記のrc.localファイルの適切な設定が有効になっていることを確認してください。

$ sudo mkdir /srv/ftp/debian
$ sudo mount --bind /opt/apt-mirror/mirror/ftp.us.debian.org/debian/ /srv/ftp/debian/
Debian Repository Setup

8.毎日のapt-mirror同期のために、毎日深夜2時に実行されるシステムスケジュールジョブを作成することもできます。crontabコマンドを実行し、好きなエディターを選択して、以下の行構文を追加してください。

$ sudo crontab –e
Daily apt-mirror Synchronization

最後の行に以下の行を追加してください。

0  2  *  *  *  /usr/bin/apt-mirror >> /opt/apt-mirror/mirror/archive.ubuntu.com/ubuntu/apt-mirror.log
Add Cron Entry for Synchronization

これにより、毎日2時にシステムリポジトリキャッシュがUbuntu公式ミラーと同期され、ログファイルが作成されます。

ステップ2:クライアントの設定

9.ローカルのUbuntuクライアントを構成するには、クライアントコンピューターの/etc/apt/source.listを編集し、httpプロトコルをftpに置き換えて、apt-mirrorサーバーのIPアドレスまたはホスト名を指すようにしてシステムを更新してください。

deb ftp://192.168.1.13/ubuntu trusty universe
deb ftp://192.168.1.13/ubuntu trusty main restricted
deb ftp://192.168.1.13/ubuntu trusty-updates main restricted
## Ad so on….
Configure Clients

10.リポジトリを表示するには、ブラウザを開いてFTPプロトコルを使用してサーバーのIPアドレスまたはドメイン名を指すことができます。

View Local Repositories

同じシステムはDebianのクライアントとサーバーにも適用され、必要な変更はDebianミラーソースリストだけです。

また、新しいUbuntuDebianシステムをインストールする場合は、インストーラーがどのリポジトリを使用するか尋ねるときに、ローカルミラーを手動でFTPプロトコルで指定してください。

独自のローカルミラーリポジトリを持つ利点は、常に最新の状態にあり、ローカルクライアントがアップデートやソフトウェアをインストールするためにインターネットに接続する必要がないことです。

Source:
https://www.tecmint.com/setup-local-repositories-in-ubuntu/