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

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

このガイドでは、Ubuntu Bionicに基づいてローカルリポジトリサーバーを構成する方法を説明しますが、以前のバージョンのUbuntuや、DebianやMintなどのメインパッケージ管理システムとしてAptitudeを使用するディストリビューションにも適合させることができます。通常、インターネット帯域幅を節約するためにローカルリポジトリを設定することをお勧めします。

このチュートリアルでは、次のことを学びます。

  • 必要なソフトウェアをサーバーにインストールする方法
  • サーバーにミラーリングするリポジトリを選択する方法
  • 選択したリポジトリをサーバー上でローカルにミラーリングする方法
  • ローカルリポジトリサーバーを使用するようにLinuxクライアントを構成する方法

上記のように、このチュートリアルではパブリックミラーまたはカントリーミラーを検討していませんが、実装する場合は次のことを考慮してください。

  • ネットワーク帯域幅が非常に重要になります
  • リポジトリをUbuntuのミラーリストに登録する必要があります
  • 少なくとも1日に4回ミラーを同期する必要があります
  • 以前のすべてのバージョンをミラーリングする必要があるため、2TB以上のディスク容量が必要になる場合があります


ローカルリポジトリからパッケージリストを更新しています。

使用されるソフトウェア要件と規則

システム ソフトウェア その他 規約
ソフトウェア要件とLinuxコマンドラインの規則
カテゴリ 使用する要件、規則、またはソフトウェアバージョン
Ubuntu 18.04.2(バイオニックビーバー)LTS
Apache http 2.x、apt-mirror
rootまたはsudoを介したLinuxシステムへの特権アクセス コマンド、リポジトリ用の最小200GBのディスク容量
–指定されたLinuxコマンドは、rootユーザーとして直接、または sudo を使用して、root権限で実行する必要があります。 コマンド
$ –特定のLinuxコマンドを通常の非特権ユーザーとして実行する必要があります

Ubuntuリポジトリサーバーを段階的に作成する方法

  1. 必要なソフトウェアをサーバーにインストールします。

    最初のステップとして、 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つのバージョンを選択した場合の見積もりです。異なるバージョンのパッケージをミラーリングする必要がある場合、必要なスペースは大幅に増加します。

  2. ローカルリポジトリを作成できる主なツールはapt-mirrorです。 、それをインストールするには実行します:

    $ sudo apt install apt-mirror
    

    パッケージが見つからない場合は、最初にパッケージリストを次のように更新してください。

    $ sudo apt update
    
  3. サーバーにミラーリングするリポジトリを選択します。

    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オプションを / var / www / html / ubuntuに変更できます。;また、常にmirror.list構成ファイルで、bionicディストリビューションをミラーリングしていることを指定する必要があります(Ubuntuのバージョンが異なる場合はそれに応じて変更してください)。

    mirror.list構成ファイル

    ディスクに十分なスペースがない場合は、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/
    
  4. 選択したリポジトリをサーバー上でローカルにミラーリングします。

    次に、ローカルミラーを作成します。最初のミラーリング( archive.ubuntu.com から)に注意してください。 このチュートリアルの場合のみ)時間がかかり、接続が遅くなる可能性があるため、このジョブを夜間に開始することをお勧めします。
    リモートリポジトリパッケージのローカルサーバーへのミラーリングを開始するには、次のコマンドを実行するだけです。

    >
    $ sudo apt-mirror
    

    必要に応じて、このプロセスを(従来のCTRL + Cコンボを使用して)中断し、後で再開することができます。残ったところから再開します。

    最終的には、clean.shスクリプトとpostmirror.shスクリプトが実行される時点に到達します。これは、ミラーリングプロセスが完了したことを示しています。

    ミラーリングプロセスの終了。

  5. cronスケジューラを使用して自動同期プロセスを構成します。

    最初の同期が完了したら、cronジョブを作成して、自動的に最新のローカルリポジトリがあることを確認する必要があります。たとえば、このタスクを毎晩午前2時に実行する必要があるため、次のようになります。

    $ sudo crontab -e
    

    次に、crontabを編集して、次の行を追加します。

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

    そして、保存して終了します(vi、nano、または設定されているエディターを使用)。

ローカルリポジトリサーバーを使用するようにLinuxクライアントを構成する

  1. ローカルリポジトリリストの設定。

    ローカルリポジトリを使用するクライアントでは、構成ファイル /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ファイルを編集する必要があります。

  2. ローカルリポジトリインデックスを更新します。
    次に、ポート80がクライアントファイアウォールによってブロックされていないことを確認してから、次を実行できるようにする必要があります。

    $ sudo apt update
    

    そして、あなたは行く準備ができています。

    ローカルリポジトリからパッケージリストを更新しています。

結論

Ubuntuでローカルリポジトリを設定するのは難しいことではないように思われるかもしれませんが、十分なローカルネットワークとディスクリソースがあれば便利です。


Ubuntu
  1. Ubuntu18.04にPostgreSQLをインストールする方法

  2. バックアップを作成する方法

  3. Ubuntu14.04サーバーにZimbra8.6をインストールする方法

  1. UbuntuでSudoユーザーを作成する方法

  2. Ubuntu18.04にMySQLをインストールする方法

  3. Ubuntu18.04にMattermostをデプロイする方法

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

  2. Ubuntu18.04にMinecraftサーバーをインストールする方法

  3. Ubuntu20.04にNginxをインストールする方法