search
LoginSignup
2

More than 1 year has passed since last update.

posted at

aptlyを用いたDebianローカルリポジトリ構築

背景

Ubuntuの環境構築を行う際、パッケージの更新やインストールを行いますが、環境によってはインターネット接続が制限されるケースもあると思います。そのような場合、Debianパッケージのローカルリポジトリを構築して、そこからパッケージをインストールしたくなりますが、その際の手順を調べたので記事にまとめてみます。本記事では aptly というDebianリポジトリ管理ツールを扱います。

環境

  • Ubuntu 18.04 (Amazon EC2 Instance)

実施手順

まずaptlyをインストールします。

# sudo apt-key adv --keyserver pool.sks-keyservers.net --recv-keys ED75B5A4483DA07C
# apt-get update
# apt-get install aptly

ローカルミラーを作成し、リモートミラーコンテンツと同期します。筆者の環境では2時間くらいかかりました。

# gpg --no-default-keyring --keyring trustedkeys.gpg --key-server keys.gnupg.net --recv-keys 40976EAF437D05B5 3B4FE6ACC0B21F32

# aptly mirror create -architectures=amd64 ubuntu-mirror   http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu/ trusty
# aptly mirror update ubuntu-mirror
出力
Downloading http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu/dists/trusty/InRelease...
Downloading http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu/dists/trusty/Release...
Downloading http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu/dists/trusty/Release.gpg...
gpgv: Signature made Thu May  8 14:20:33 2014 UTC
gpgv:                using DSA key 40976EAF437D05B5
gpgv: Good signature from "Ubuntu Archive Automatic Signing Key <ftpmaster@ubuntu.com>"
gpgv: Signature made Thu May  8 14:20:33 2014 UTC
gpgv:                using RSA key 3B4FE6ACC0B21F32
gpgv: Good signature from "Ubuntu Archive Automatic Signing Key (2012) <ftpmaster@ubuntu.com>"
Downloading & parsing package files...
Downloading http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu/dists/trusty/main/binary-amd64/Packages.bz2...
Downloading http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu/dists/trusty/restricted/binary-amd64/Packages.bz2...

(...略...)

スナップショットを作成します。

# aptly snapshot create ubuntu-mirror-20210304 from mirror ubuntu-mirror

リポジトリコンテンツを格納するS3バケットを作成し、静的ウェブサイトホスティングを有効にします。作成したS3バケットに対してpublishします。

# export AWS_ACCESS_KEY_ID="xxxxxxxx" AWS_SECRET_ACCESS_KEY="xxxxxxxxxxxxxxxx"
# aptly publish snapshot --skip-signing ubuntu-mirror-20210304 s3:your-repo-bucket:

~/.aptly.conf ファイルの "S3PublishEndpoints" を以下のように編集します。

~/.aptly.conf
{
  "rootDir": "/root/.aptly",
  (...略...)
  "S3PublishEndpoints": {
    "your-repo-bucket": {
      "region": "ap-northeast-1",
      "bucket": "your-repo-bucket",
      "acl": "public-read"
    }
  },
  "SwiftPublishEndpoints": {}
}

2回目以降のpublishには以下のコマンドを実行します。

# aptly publish --skip-signing switch trusty s3:your-repo-bucket: ubuntu-mirror-20210304

動作確認

構築したリポジトリからインストールするよう /etc/apt/sources.list を編集します。

/etc/apt/sources.list
deb http://your-repo-bucket.s3-website-ap-northeast-1.amazonaws.com/ trusty main

例として apache2 をインストールしてみます。

# apt-get update --allow-insecure-repositories --allow-unauthenticated
# apt-get install apache2

筆者の環境では無事インストール出来ました。

参考

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
2