aptリポジトリの作成方法って?【Linux】

  • このエントリーをはてなブックマークに追加
  • Pocket
aptリポジトリの作成方法

Debian系だとaptリポジトリという種類のリポジトリを使っていく。このページではaptリポジトリの作成方法についてお伝えした。

それほど実施する行為ではないが、知っておいて損はないだろう。

aptリポジトリを作成する意味

実際にパッケージをつくれるようになると「自作パッケージの管理についてどうすべきか?」という問題に直面するだろう。「同じアーキテクチャのマシンに一斉にインストールする場合」や「依存関係を自動解決してからのインストール」などそういったニーズもでてくるだろう。

その場合、Debianのaptな自己リポジトリを作成して管理することをお勧めする。しかし、リポジトリの作成にはサーバ管理の知識がとわれてくる部分も少なからずある。

今回最小限に的をしぼるため「コンピュータのローカル内で自己リポジトリを古典的な方法で作成する」というのを目標に、最短ルートを記述することにする。

ベストとしてはGPG署名をし、キーを作成、キーリングに取り込み、「mini-dinstall」などのモダンなツールを使用し、HTTPサーバ上で公開するのがベストだ。

リポジトリを取り合えず作ってみる

まずは必要なユーティリティをインストールする。基本的にデフォルトでインストールされていると思うが、もしインストールされていなかった場合以下のコマンドを使用してインストールする。

# apt-get install apt-utils

リポジトリ設置のためのディレクトリ作成

# mkdir /var/mypkg

移動して「packages」を作成する

# cd /var/mypkg

# mkdir packages

パッケージをpackagesディレクトリのなかへ放りこむ

# cp /<pkg_path>/testdpkg-sample_0.1-1_all.deb packages/

実際にリポジトリを作成する。実行して出来上がる「Packages.gz」の中にパッケージ一覧などの情報が集約されている。

# apt-ftparchive packages . | gzip > Packages.gz

aptのsources.listにローカルリポジトリを追加する。

# vi /etc/apt/sources.list

の記述を追加、リポジトリを追加したら

# apt-get update

を実行、いくつか「無視」という項目がでてくるが気にしなくても大丈夫だ。

動作確認をする

リポジトリに反映されているかどうか確認してみよう。

# apt-cache search testdpkg

apt-cache-testdpkg-sample

としてみよう自分で作成したパッケージが追加されているはずだ。試しに

# apt-get install testdpkg-sample

とすると「警告: 以下のパッケージは認証されていません!」と警告がでるとおもうがこれはgpgキーの認証をおこなっていないからである。

本来全てのDebianパッケージはgpgによるサインがおこなわれており、そのためのキーを認証するための一覧をパッケージマネージャが保有している。

しかし今回自分で作成したパッケージのため、自作パッケージはgpg認証されておらず、パッケージマネージャの認証一覧に存在しないためこのような警告が表示される。

今回試験的にローカル内でリポジトリを立てたためこの警告は無視してしまっても問題ない。

最後に

# apt-get remove testdpkg-sample

などとして動きを確かめてみよう、正常に動作するはずだ。

まとめ

このページではaptリポジトリの作成方法についてお伝えした。ひとつひとつ追いかけるとそれほど難しくはないはずだ。参考にしていただければと思う。

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できる。

短期間でエンジニアになる方法

・「まったくの初心者だけどエンジニアになりたい!」

・「プログラマーとして転職をしたい!」

という方はリナックスアカデミーの資料を見てみてください。短期間で未経験からエンジニアになることができるスクールとして15年間選ばれ続けてきた理由やノウハウが載った資料です。

エンジニアの入り口に立つために必要な勉強技術の最新動向本当に使えるIT資格学習に役立つ国からの奨励金などの情報が詰まっています。

無料で2,3日中にお手元にお届けします。


資料を見てみる

SNSでもご購読できます。

コメントを残す

*