Heijastin

APT Basic

Command line ならではの優位性。

Update, Upgrade, Software の追加・削除は Terminal からの操作が手軽。APT は幾つかの簡単な Commands を覚えるだけで良い。慣れてしまえば GUI を使う必要がなくなる。

Index

  1. 管理の注意点
  2. 追加と削除
  3. 整理整頓
  4. System の更新

管理の注意点

Package 管理は System 全体に関わる行為であり、管理者権限を要する行動なので、ひとつひとつを十分に注意して決定する。例えば Linux Mint において「有線環境だから Wi-Fi 関連は全部削除!」なんて大雑把なことをすると OS 自体が起動しなくなることもある。

Package と Software の違い

Linux では Application を "Package" または "Software" と呼称することがある。Software は Application と同義と言えるが Package という概念には Libraries やFonts など Applicaton 以外のものも含まれる。

僕は Red Hat の Binary 配布形式で Package という呼称を初めて知った。Red Hat 系の Package には .rpm の拡張子が付く。Debian 系は .deb の拡張子で APT という機構を用いて Package 管理を行っている。

追加と削除

Package の追加と削除には「管理者権限」が要求される。安全のため、正しい Password(自分で決めた Login などに使う暗号)を打った後でしか Command は実行されないようになっている。APT は「本当に導入 or 削除するか?」と再確認してくれるので y (Yes) or n (No) で回答して作業を進める。

依存関係とは?

APT には Application の動作に必要となる Packages を自動検出する機能がある。例えば gnome-shell は gir1.2-atk がなければ動作しない。つまり「依存」している。故に gnome-shell を導入すると gir1.2-atk も同時に導入される。これが Dependencies(依存関係)だ。

依存関係の表示

apt-cache depends 名前

Ubuntu 派生と Linux Mit の場合は省略形が利用可能。

apt depends 名前

試しに apt-cache depends python というCommand を Copy する。Terminal を起動して Ctrl+Shift+V と押してから Enter を押す。すると、画像のように python の依存関係が表示されるはずだ。

apt-cache depends
apt-cache depends

検索

apt-cahce search 名前

手軽かつ高速だが、例えば "Music Player" で検索すると、当然ながら文字列だけで結果が返ってくる。Linux 初心者だと、名称だけでは Software の内容が想像出来ない。故に、これは経験者向けだ。

例えば Ubuntu 系列の Software Center はこの問題を解決している。画像や評価が参照出来るし、分野・人気順などからも検索可能。経験者にとっても便利だ。なお Synaptic は APT に GUI を付けただけで特に利用する意義はないと思う。古くは PackageSearch というそのままの Tool もあった。

導入済 Packages の一覧表示

dpkg --get-selections

自分が使っている Distro に「何が先行導入してあるのか?」を知りたい人もいるだろう。そんな時は以上の操作で一覧を表示できる。こちらは APT ではなく DPKG (Debian Package) を用いる。

追加

sudo apt-get install 名前

管理権限が要求される作業。apt-cache search で表示される Package の正式名称を apt-get install に追記する。複数を一括導入するには、各名称を空白で区切って打ち込む。

apt-get install
apt-get install

Opera, Skype などの追加

sudo dpkg -i 名前.deb

Proprietary softwares や、実験段階で Repo 登録されていない Software など、公式サイトから直接 .deb を入手した場合は DPKG を使って Installation を行う。一度導入してしまえば、削除は APT で行える。

設定ファイルまで一括削除

sudo apt-get purge 名前

管理権限が要求される作業。apt-get remove 単発や Software Center で削除を実行しても、実は「設定ファイル」が残ってしまう。完全削除には purge を使う。

apt-get purge
apt-get purge

孤立した Packages の削除

sudo apt-get autoremove --purge

管理権限が要求される作業。依存関係の残滓を自動検出して削除する。これは APT ならではの強み。何らかの Package を削除すれば、その依存関係も解消される。その結果「存在理由が消失した」Packages が残されることがある。autoremove は孤立した Packages のみ削除してくれるので安心して使用出来る。そのため、画像の例では -y で質問に先行回答している。

apt-get autoremove
apt-get autoremove
Index に戻る

整理整頓

以下の作業は、神経質に整理整頓を行いたい場合に行う。可能なだけ無駄を排除すれば update, upgrade 時間が短縮出来る。

依存関係を持たない Packages の削除

deborphan | xargs sudo apt-get purge -y

まずは sudo apt-get install deborphan で Deborphan を導入する。Deborphan は autoremove と異なり「依存関係を持たない Packages をすべて検出」する。つまり現在使用中だが独立した Package である Fonts なども結果に表れてしまうのだ。本当に削除して良いものか否かは、しっかり判断すること。画像はまさに失敗例。

deborphan
deborphan

不要となった設定ファイルの削除

dpkg -l | awk '/^rc/ {print $2}' | xargs sudo dpkg --purge

purge を使わずに削除した Package は設定ファイルだけが残ってしまう。この設定ファイルのみを削除する。

参照:APT Tip: Purge Removed Packages « exit’s /dev/urandom blog
Index に戻る

System の更新

Ubuntu 系なら GUI が用意されているが Update Manager 系は挙動が重い。Netbook などでは起動させるだけで、ひと苦労。やっぱり環境を問わない Terminal の方が快適だ。なお Aptosid では X Window System を停止してからの System update 厳守が公式文書に明記されている。古の話だが Gentoo で Firefox を emerge する際に X を停止していないと Sandbox 違反で Compile に失敗することもあった。

sudo apt-get update
sudo apt-get dist-upgrade -y

su 可能な Distro であれば(Ubuntu 系は不可)su 後は以下のように一発で良い。各 Commands は &(アンド)で「コンボ化」出来ることを覚えておくと便利だ。

apt-get update && apt-get dist-upgrade -y
Tags