GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu20.04でローカルAPTリポジトリサーバーをセットアップする方法

ローカルのaptリポジトリサーバーのセットアップを検討する理由の1つは、更新するUbuntuのインスタンスが複数ある場合に必要な帯域幅を最小限に抑えるためです。たとえば、サーバーが20台ほどあり、すべてを週に2回更新する必要がある状況を考えてみましょう。ローカルリポジトリサーバーからLAN経由ですべてのシステムを更新するだけなので、帯域幅を大幅に節約できます。

このガイドでは、Ubuntu20.04LTSでローカルaptリポジトリサーバーをセットアップする方法を学習します。

前提条件

  • Ubuntu20.04LTSシステム
  • ApacheWebサーバー
  • / var / www/htmlファイルシステムに最低170GBの空きディスク容量
  • 安定したインターネット接続

ステップ1)ローカルのApacheWebサーバーを作成する

まず、Ubuntu 20.04にログインし、図のようにApacheWebサーバーをセットアップします。

$ sudo apt install -y apache2

Apache2サービスを有効にして、再起動後も持続するようにします。次のコマンドを実行します

$ sudo systemctl enable apache2

Apacheのデフォルトのドキュメントルートディレクトリは、/ var / www/htmlパスにあります。後で、必要なパッケージを含むリポジトリディレクトリをこのパスに作成します。

ステップ2)パッケージリポジトリディレクトリを作成します

次に、/ var / www/htmlパスにubuntuというローカルリポジトリディレクトリを作成します。

$ sudo mkdir -p /var/www/html/ubuntu

上記で作成したディレクトリに必要な権限を設定します。

$ sudo chown www-data:www-data /var/www/html/ubuntu

ステップ3)apt-mirrorをインストールします

次のステップはapt-mirrorパッケージをインストールすることです。このパッケージをインストールした後、リモートdebianパッケージをダウンロードしてサーバー上のローカルリポジトリに同期するapt-mirrorコマンドまたはツールを取得します。したがって、インストールするには、次の手順を実行します

$ sudo apt update
$ sudo apt install -y apt-mirror

ステップ4)ミラーリングまたは同期するようにリポジトリを構成する

apt-mirrorがインストールされると、その構成「/etc/apt/mirrror.list」が自動的に作成されます。このファイルには、Ubuntuサーバーのローカルフォルダーにダウンロードまたは同期されるリポジトリのリストが含まれています。この場合、ローカルフォルダは「/ var / www / html /ubuntu/」です。このファイルに変更を加える前に、まずバックアップを取りましょう。

$ sudo cp /etc/apt/mirror.list /etc/apt/mirror.list-bak

次に、viエディターを使用してファイルを編集し、以下に示すようにbase_pathとリポジトリーを更新します。

$ sudo vi /etc/apt/mirror.list

############# config ###################
set base_path    /var/www/html/ubuntu
set nthreads     20
set _tilde 0
############# end config ##############
deb http://archive.ubuntu.com/ubuntu focal main restricted universe \
 multiverse
deb http://archive.ubuntu.com/ubuntu focal-security main restricted \
universe multiverse
deb http://archive.ubuntu.com/ubuntu focal-updates main restricted \
universe multiverse
clean http://archive.ubuntu.com/ubuntu

ファイルを保存して終了します。

私がUbuntu20.04LTSパッケージリポジトリを使用していることに気付いたかもしれませんが、システムに十分なスペースがないため、srcパッケージリポジトリをコメントアウトしています。 srcパッケージもダウンロードまたは同期する場合は、「deb-src」で始まる行のコメントを解除します。

ステップ5)リモートリポジトリのローカルフォルダへのミラーリングを開始します

ミラーリングまたは同期を開始する前に、まず、以下のcpコマンドを使用してpostmirror.shスクリプトをフォルダー/ 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

次に、リモートリポジトリからシステムのローカルフォルダへのパッケージのミラーリングを開始します。以下を実行します:

$ sudo apt-mirror

上記のコマンドは、以下のnohupコマンドを使用してバックグラウンドで開始することもできます

$ nohup sudo apt-mirror &

ミラーリングの進行状況を監視するには、以下を使用してください。

$ tail nohup.out

Ubuntu 20.04 LTSでは、apt-mirrorはCNFディレクトリとそのファイルを同期するため、フォルダとそのファイルを手動でダウンロードしてコピーする必要があります。したがって、CNFディレクトリを手動でダウンロードしないようにするには、以下の内容のシェルスクリプトを作成します。

$ vi cnf.sh
#!/bin/bash
for p in "${1:-focal}"{,-{security,updates}}\
/{main,restricted,universe,multiverse};do >&2 echo "${p}"
wget -q -c -r -np -R "index.html*"\
 "http://archive.ubuntu.com/ubuntu/dists/${p}/cnf/Commands-amd64.xz"
wget -q -c -r -np -R "index.html*"\
 "http://archive.ubuntu.com/ubuntu/dists/${p}/cnf/Commands-i386.xz"
done

スクリプトを保存して閉じます。

スクリプトを実行して、CNFディレクトリとそのファイルをダウンロードします。

$ chmod +x cnf.sh
$ bash  cnf.sh

このスクリプトは、現在の作業ディレクトリに「archive.ubuntu.com」という名前のフォルダを作成します。このフォルダをミラーフォルダにコピーします

$ sudo cp -av archive.ubuntu.com  /var/www/html/ubuntu/mirror/

注: cnfディレクトリを同期しないと、クライアントマシンで次のエラーが発生するため、これらのエラーを解決するには、上記のスクリプトを作成して実行する必要があります。

E: Failed to fetch http://x.x.x.x/ubuntu/mirror/archive.ubuntu.com/ubuntu/dists/\
focal/restricted/cnf/Commands-amd64  404  Not Found [IP:169.144.104.219 80]
E: Failed to fetch http://x.x.x.x/ubuntu/mirror/archive.ubuntu.com/ubuntu/dists/\
focal-updates/main/cnf/Commands-amd64  404  Not Found [IP:169.144.104.219 80]
E: Failed to fetch http://x.x.x.x/ubuntu/mirror/archive.ubuntu.com/ubuntu/dists/\
focal-security/main/cnf/Commands-amd64  404  Not Found [IP:169.144.104.219 80]

自動リポジトリ同期のスケジュール

ローカルのaptリポジトリを自動的に更新するようにcronジョブを設定します。このcronジョブを毎日夜間に設定することをお勧めします。

「crontab-e」を実行し、次のコマンドを追加して、毎日午前1時に実行します。

$ sudo crontab -e

00  01  *  *  *  /usr/bin/apt-mirror

保存して閉じます。

注:ファイアウォールがUbuntuサーバーで実行されている場合は、次のコマンドを使用してポート80を許可します

$ sudo ufw allow 80

ステップ6)Webブラウザを介したローカルAPTリポジトリへのアクセス

Webブラウザを介してローカルに設定されたaptリポジトリにアクセスするには、次のURLを入力します。

http:// /ubuntu/mirror/archive.ubuntu.com/ubuntu/dists/

ステップ7)ローカルaptリポジトリサーバーを使用するようにUbuntu20.04クライアントを構成します

aptリポジトリサーバーが正常に機能しているかどうかをテストおよび確認するために、別のUbuntu 20.04 ltsシステムを使用して、aptコマンドがリモートではなくローカルリポジトリを指すように/etc/apt/sources.listファイルを更新します。

>

したがって、システムにログインし、sources.listで以下を変更します

http://archive.ubuntu.com/ubuntu
to
http://169.144.104.219/ubuntu/mirror/archive.ubuntu.com/ubuntu

ここで、「169.144.104.219」は私のaptリポジトリサーバーのIPアドレスです。ご使用の環境に適したこのIPアドレスを置き換えてください。

また、aptリポジトリサーバーにミラーリングされていない他のすべてのリポジトリをコメントアウトしてください。したがって、sources.listファイルに変更を加えると、次のようになります。

次に、「apt update」コマンドを実行して、クライアントマシンがローカルのaptリポジトリサーバーから更新を取得していることを確認します。

$ sudo apt update

上記の完璧な出力は、クライアントマシンがパッケージと更新をフェッチするためにリポジトリに正常に接続できることを確認します。この記事の内容は以上です。このガイドが、Ubuntu20.04システムでローカルのaptリポジトリサーバーをセットアップするのに役立つことを願っています。

また読むLinuxでの14の便利な「ls」コマンドの例


Ubuntu
  1. UbuntuLinuxでのWebDAVサーバーのセットアップ

  2. APTミラーを使用してUbuntuでローカルリポジトリをセットアップする4つの手順

  3. UbuntuとLinuxMintでNTPサーバーをセットアップする方法

  1. DebianubuntuローカルISOリポジトリを設定する方法

  2. Ubuntu18.04LTSでRsyslogサーバーをセットアップする方法

  3. Ubuntu 20.04でRsyslogサーバーをセットアップする-その方法は?

  1. Ubuntuリポジトリサーバーを作成する方法

  2. Ubuntu20.04でOpenVPNサーバーをセットアップする方法

  3. Ubuntu20.04でVSFTPDを使用してFTPサーバーをセットアップする方法