Bash on Ubuntu on Windows環境(以降、Bow環境と略す)に、PHPをapt-getでインストールしようとしたときに、思い浮かんだ疑問を書く。
わりと、とりとめもない。
apt-get
新しいパッケージをインストールするとき、以下のコマンドを叩くと思う。
(そもそもパッケージだったりモジュールだったり、インストールって言葉もよくわからないね)
$ apt-get install パッケージ名
これを行うと、あら簡単、欲しかったコマンドだったり機能だったりが使えるようになる。
ちなみに、欲しい機能をググった時、apt-getじゃなくて、yumだったりすると、そっとブラウザバックするのは自分だけじゃないはずだ。
普段、Windowsを使っている自分からすると、結構不思議なことだったりする。
apt-getとパッケージ名だけでどうして取れてこれるんだろうと。
Windowsだったら、自分で欲しいアプリケーションを検索して、そのサイトにいってダウンロードしていたから。
ということで調べてみる。
sources.list
以下のディレクトリを見てみよう。
sources.listを覗く
$ view /etc/apt/sources.list
ここには、URLが書いてあって、apt-getが叩かれたときに、見に行く場所がちゃんと書かれている。
sources.list(抜粋)
deb http://jp.archive.ubuntu.com/ubuntu/ xenial main restricted
deb http://jp.archive.ubuntu.com/ubuntu/ xenial-updates main restricted
ブラウザで見ると、「sources.list」に書かれているURLにアクセスしてみると、こんな感じのページが表示される。
ちなみに、このパッケージが置いてある場所をリポジトリということがあるみたい。
細かいことはわからないけれども、すこしわかった気がする。
誰が管理してるの?
ところで、このリポジトリ、誰が管理しているのだろうか。
実は、こうなんだよ、と言えればいいのですが、残念ながらよくわかってないです。
きっと、Ubuntuを作っているすごい方達が、このパッケージのこのバージョンはリポジトリに追加しても大丈夫!ってやっているんじゃないかと思っている。
ちなみに、公式のリポジトリのURLはミラーサイト含め、世界中にある。
日本国内のダウンロードサイト | Ubuntu Japanese Team
ここから、落とす分には安全ということなんでしょうかね。
公式に欲しいバージョンがない
この記事を書くきっかけになったことなんですが、公式に欲しいバージョンがなかったりすることもあります。
今回でいえば、phpの7.1系がほしかったのですが、7.0までしかありませんでした。
こういうときは、7.1を公開している公式以外のリポジトリを追加することで参照できるようになるとのことです。
www.digitalocean.com
リポジトリを追加
$ sudo add-apt-repository ppa:ondrej/php
いまいちこのコマンドからURLが読み取れないので、どういう仕組みなのかがわかりませんが、おそらく以下のサイトに置いてあるアプリを落としているように思えます。
launchpad.net
また、コマンド内にある、ppaですが、個人のリポジトリのことをPPAと呼ぶみたいです。
allabout.co.jp
ここまで書いて、AppleのAppleStoreが、Ubuntuの公式リポジトリに似てるなぁと思いました。
どうでもよい疑問
Ubuntuでインストールするパッケージ名って、皆さんどうやって判断しているのだろうか。
phpの古いバージョンのリファレンスを参考に進めていたりすると、名前が変わったりしていて、どれが正しいのかわからないことが多い。