はじめに
先日Debian系のLinuxをUTMで動かす機会がありました。その際に、
apt???
apt-get???
何が違うの?
パッケージって何w
etc...
一度に押し寄せてくる情報量に圧倒されてしまいました。それでも、1つずつ攻略しないと先へは進めません。
そこで今回はaptとapt-getをどう使えば良いのかについて記事を書いてみます。
対象とする読者
- Linux初心者
- エンジニア初心者
- aptがわからない人
まずは調べてみる
aptはこう書いてある
以下、ウィキペディア日本語版(2023年4月28日10:00時点での最新を取得)のAPTを引用。
APT(Advanced Packaging Tool、あるいは Advanced Package Tool)とは、ソフトウェアのインストールとアンインストール(削除)を自動的に行い、ソフトウェアの管理を簡単に行えるようにするための仕組みの1つ。
もともと Debian用に開発されたコマンドラインベースのパッケージ管理システムである。現在では多数の Debian系の Linuxディストリビューションで採用されている。
ちなみに、apt-getはaptのページへ転送されました。
ここで3つの疑問が、、、
- パッケージとは?
- パッケージ管理システムとは?
- aptとapt-getの違いは?
もう少し調べてみる必要がありそうですねー。
パッケージって何?
段ボールのこともa packageと言いますが、包装・梱包されていたりといったものを連想すると思います。その箱の中には複数の商品を入れられると思います。同じように、ソフトウェアをインストールするときに関連した(依存関係にある)ファイルがひとまとめになったものをパッケージといいます。
パッケージ管理システムとは?
パッケージを一元管理して、インストール、アップグレード、削除をするツールのことを言います。さらに、依存関係の解決、バージョン管理、更新を自動化することができます。ここでの依存関係とは、パッケージ内の依存関係ではなく、パッケージ外との「すべての」ファイルの依存関係を解決することを指しています。つまり、パッケージ同士の依存関係まで解決してくれます。なんとすばらしい!!!
ただ、依存関係が複雑な場合は「手動」で解決する場合もあるようです。。。
aptとapt-getの違いは?
Debian管理者ハンドブック(2023年4月28日10:00時点)のapt-getコマンドの節には、aptはAPTが提供する2番目のコマンドラインベースのフロントエンドで、apt-getの設計上の間違いを克服しているとあります。また、aptは最も推奨されるインターフェイスとも書いてあります。ただし、パッケージのインストール要求をスクリプト化する必要がある場合にはapt-getを使用することになるとも書いてあります。
つまり、普段使いにはaptコマンドを使い、シェルスクリプト化するときや、自動化する処理が必要な場合はapt-getを使用するのが良さそうです。
apt-getが出てきたらどうすれば良いの?
何かをインストールしたいとき、アップデートしたいとき、削除したいとき、まずはネットで調べてみるはずです。そして、古い記事に行き着くとapt-getコマンドを使用されている例があるかもしれません。この場合はもう、その都度aptで読み替えられないか調べてみましょう。出来る限り、一次情報、複数人で書かれた記事から読むことをお勧めします。
あとがき
わからないことを調べてみると、その説明にわからないことまた出てきて、さらにまた調べて...と続けていると、「当初の目的からズレてきている」ことに気付かされることがあります。ただ、「わからない」を「わかる」にかえたとき自身の成長を実感できるので、趣味の時間にこういうことをするのは良いかもしれないですね。
さて今回は、その「脱線」したときに見つけた「隠しコマンド」をご紹介して終わろうと思います。もちろん、apt-getをaptに読み替えましたw
他にもたくさんあるので調べてみてね!!!
$ apt moo
(__)
(oo)
/------\/
/ | ||
* /\---/\
~~ ~~
..."Have you mooed today?"...
$ apt install cowsay
$ cowsay モウモウ
__________
< モウモウ >
----------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||