FreeBSD Daily Topics

2012年8月16日pkg(8)でソフトウェアをすべて削除する方法と自動インストール]

pkgng

How to delete all installed softwares by pkg(8)

pkg(8)経由でインストールしたソフトウェアをすべて削除するには、deleteサブコマンドに-aオプションを指定します。たとえば次のように操作します。このケースで、すべて削除することで2GBの空き領域ができるという出力がでています。

# pkg delete -a
The following packages will be deinstalled:

        xorg-drivers-7.5.2
        xorg-fonts-7.5.1
        xcursor-themes-1.0.3_1
        xorg-apps-7.5.2
        xorg-docs-1.6,1
...略...
        libX11-1.4.4,1
        kbproto-1.0.5
        libxcb-1.7
        libXdmcp-1.1.0
        libpthread-stubs-0.3_3
        libXau-1.0.6
        xproto-7.0.22
        pkg-config-0.25_1

The deinstallation will free 2 GB

Proceed with deinstalling packages [y/N]: y
Deinstalling xorg-drivers-7.5.2... done
Deinstalling xorg-fonts-7.5.1... done
Deinstalling xcursor-themes-1.0.3_1... done
Deinstalling xorg-apps-7.5.2... done
Deinstalling xorg-docs-1.6,1... done
Deinstalling xorg-libraries-7.5.1... done
Deinstalling gio-fam-backend-2.28.8_1... done
...略...
Deinstalling libxcb-1.7... done
Deinstalling libXdmcp-1.1.0... done
Deinstalling libpthread-stubs-0.3_3... done
Deinstalling libXau-1.0.6... done
Deinstalling xproto-7.0.22... done
#

pkg(8)コマンドそのものも削除されるため、pkg delete -aを実行したあとでpkg(8)を実行すると次のように最新のpkg(8)をダウンロードするかどうかの確認が表示されます。

# pkg delete -a The package management tool is not yet installed on your system. Do you want to fetch and install it now? [y/N]: N #

pkg(8)でインストールされたソフトウェアのパッケージファイルは/var/cache/pkg/All/ディレクトリに保存されているため、もう一度インストールする作業は短時間で済みます。pkg(8)を使っていて解決できない不整合が発生した場合には、いったんすべてpkg delete -aしてからもう一度インストールしなおす方法が簡単です。

たとえば次のようなスクリプトを用意しておいて、pkg delete -aを実行したあとに自動でインストールを実施するといった方法が考えられます。

#!/bin/sh

yes | pkg
yes | pkg update
yes | pkg install                 \
        zsh                       \
        bash                      \
        xorg                      \
        compiz-fuzion             \
        lxterminal                \
        leadpad                   \
        pcmanfm                   \
        gtk-engines2              \
        gnome-themes              \
        lxde-icon-theme           \
        ja-font-std               \
        ja-font-ipaex             \
        ja-font-ipa-uigothic      \
        ja-font-mona-ipa          \
        ja-ibus-mozc              \
        ja-nkf                    \
        vim-lite                  \
        chromium                  \
        firefox                   \
        opera                     \
        thunderbird               \
        sylpheed                  \
        pidgin                    \
        sudo                      \
        smartmontools             \
        topless                   \
        tmux                      \
        tree                      \
        lha                       \
        lv                        \
        git                       \
        subversion-1.7.5          \
#

とくにPorts Collectionと併用している場合、不整合が発生してpkg upgradeが実行できない状況になることがありますので、そうした場合にはいったんすべて削除してから作業をやり直すことになります。現在はpkg-configがpkgconfigに移行したことが原因でPorts Collectionとpkg(8)は不整合が発生しやすい状況になっているため、この方法は覚えておくと便利です。

おすすめ記事

記事・ニュース一覧