yumやapt-get、aptitude、pkg(IPS)、brew(Homebrew)、choco(Chocolatey)、nuget(NuGet)などのパッケージ管理ソフトウェアでコマンド install パッケージ名
とするとダウンロードからインストールまで自動でされるところの、ダウンロードがどうなっているかと言うことでしょうか?そうであれば、どの仕組みでもだいたい同じです。ただし、名称等は微妙に異なるのでご注意ください。
始めにパッケージ管理ソフトウェアにはレポジトリサーバというものががあらかじめ設定されています。レポジトリサーバはURLの形式で設定されており、このURLに一定の手順でアクセスすると、現在ダウンロードできるパッケージのリスト(カタログという)を取得できます。パッケージ管理ソフトウェアは始めにこのカタログを入手します(ほとんどの場合はキャッシュとしてローカルに保存します)。次にコマンドで指定されたパッケージがカタログにあるかどうかを探します。もし該当するパッケージがあれば、それがインストールの対象となります。カタログにはパッケージ名の他に、バージョンや依存関係も記載されています。コマンドでバージョン指定があればそのバージョンを、無ければ(通常は)最新版を対象とします。それだけではなく、依存関係もみます。パッケージ管理ソフトウェアにはこれまでインストールしたパッケージのリストを持っていますので、まだ持っていないパッケージがあればそれも対象にします。
これでインストールの対象が決まりました。次にダウンロードですが、カタログにダウンロードURLが記載されている場合と、レポジトリサーバの設定等から法則に合ってダウンロードURLが決まる場合があります。いずれにしても、レポジトリサーバのURLからカタログを入手した段階で各パッケージのダウンロードURLがわかります。パッケージ管理ソフトウェアはこのダウンロードURLにアクセスしてダウンロードを行います。パッケージ管理ソフトウェアにはダウンロードに特化したブラウザと同じような機能が組み込まれているので、ブラウザなど無くなくてもダウンロードが可能です。
ダウンロードが終わればインストールになります。パッケージ管理ソフトウェアによってインストール方法が異なりますが、これもダウンロードしたパッケージの中に記載されていたり、そもそもインストール可能な形式だったりします。それに従って、パッケージ管理ソフトウェアはインストールを行います。
だいたいこのような動きです。細かいところはソフトウェアによって異なりますのでご注意ください。また、レポジトリサーバは、デフォルトで設定されているもの以外に手動で追加や削除ができる場合がほとんどです。外部にアクセスさせない運用の所は自前でレポジトリサーバを用意しているという場合もあります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/04/23 11:22