apt

(更新:2017/09)apt-lineを日本のサーバに変更
(更新:2012/02)Ubuntu導入パッケージのバックアップと復元
(作成:2011/05)

UbuntuなどDebian系OSでパッケージ管理をするソフト。ここでは少し便利な使い方をご紹介。

apt-lineを日本のサーバに変更

#### /etc/apt/source.list

##deb http://archive.ubuntu.com/ubuntu/ xenial main restricted universe multiverse
##deb http://archive.ubuntu.com/ubuntu/ xenial-updates main restricted universe multiverse
##deb http://security.ubuntu.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://ftp.jaist.ac.jp/pub/Linux/ubuntu/ xenial main restricted universe multiverse
deb http://ftp.jaist.ac.jp/pub/Linux/ubuntu/ xenial-updates main restricted universe multiverse
deb http://ftp.jaist.ac.jp/pub/Linux/ubuntu/ xenial-security main restricted universe multiverse
$ sudo apt-get update
...
$ sudo apt-get upgrade
...
$ sudo apt autoremove
...

身無し子ライブラリの検索・確認・削除

あるソフトを入れたは良いが、使えないと判断してサクッと削除したとする。 しかし、大抵は「使いたい」と思って導入したソフトくらいしか覚えてなく、それのみを削除してもそれに付随して導入されたライブラリを自力で削除したりはしないだろう。 それが積み重なると身無し子のライブラリがどんどん溜っていくことになる。
そんな身無し子ファイルを検索するのが以下のコマンド。

$ deborphan

現在どのソフトでも使われていないライブラリが列挙される。 内容を詳しく知りたい場合は apt-cache と共に以下のようにして使うと良い。

$ apt-cache show `deborphan` | less

全部一気に削除したい場合は以下のように。

$ apt-get --purge remove `deborphan`

Ubuntu導入パッケージのバックアップと復元

Windowsと一緒とまではいかないけれど、Desktop環境も数年使えば再インストールして綺麗にしてやりたくなる事がある。メモリ管理の不具合か不要サービスが潜むためか、そうでなくともメジャーリリースを apt で繰り返すと何故か不調になってくる事がある。まあそんなわけで再インストールをする時にありがちなのが、自分で何のパッケージ入れたんだったか忘れる。手早く元の環境に……といきたいところだけれど、中々思い出せない。というわけで、こんな手は如何か。

まずはバックアップ。ひとまずバックアップ先を /opt/backup としておく。
apt-line情報を取得。本当は全部必要なわけではないと思うけれど、まあ面倒だし。

# cp -rf /etc/apt /opt/backup/

続いてインストールパッケージ一覧の取得。

# dpkg --get-selections > /opt/backup/installed.txt

復元はこんな感じ。

# cp -rf /opt/backup/apt /etc/
# apt-get update
# apt-get install `cat /opt/backup/installed.txt | egrep '(install|hold)$'| awk '{print $1}'`

……インストールして放置された不要パッケージも入っちゃうけれど、それに目を瞑れば、まあ悪くない方法じゃないかなと。
バックアップ手順に関してはスクリプト化して cron で仕込んでおいた方が無難かもね。