ソースからビルドしたソフトをLinuxでクリーンに管理する方法
2014-08-24
2014-08-24
こんにちは。今回のテーマは『ソースからビルドしたアプリケーションをLinuxでクリーンに管理する方法』です。自作ビルドしてインストールしたソフトウェアって削除するときにシステムにファイルを残してしまうことも多いですのよね。今回は知っている人にとっては当たり前の方法ですが、応用が効くと思いますので、色々試してみてください。 関連記事:Linuxにソフトウェアをインストールするには? [adsense02]
make uninstallを当てにしない
基本的には作成したMakefileにアンインストールする際の手順も書かれているのでをmake installでインストールしたアプリケーションはmake uninstallで削除できます。しかしMakefileを紛失したり、Makefileにuninstall指定がないなど、**システムから不要なファイルを削除するのが困難になる場合もあります。**あまりmake uninstallを当てにしない方が懸命かと思います。
パッケージを作るのも一つの手ではある
ソースからビルドしたソフトを扱う際にdebファイルやrpmファイル等のディストロで扱えるパッケージを作成したり、ArchユーザーでしたらPKGBUILDファイルを書いてパッケージマネージャーで管理するという手段は王道です。しかし、手間がかかったり、すぐに使いたいという場合には向きません。 関連記事:意外に簡単!Debパッケージを自作する方法
実際にやってみよう
では実際にAsunderというCDリッピングソフトをソースからビルドしてインストールして、システムに影響を及ぼさず削除できる環境を構築してみましょう。 ※Asunderは主要なディストロでパッケージを配布しています。今回は例として使用しますが、実際はディストロ配布のパッケージからインストールできます。 関連記事:Asunder : Linuxで使えるCDリッピングソフト
インストール編
#1 アプリケーション専用ディレクトリの作成
まず、アプリケーション専用のディレクトリを作成してしまいましょう。場所は/usr/local/下でもホームディレクトリ以下でも結構です。今回は~/localapp/asunderというディレクトリを用意しました。
$ sudo mkdir -p /usr/local/myapp/asunder
#2 ソースからAsunderをビルド
ソースのダウンロード http://littlesvr.ca/asunder/downloads.phpからソースファイルをダウンロードしましょう。今回は展開作業とビルド作業は~/tempディレクトリ下で行います。
$ cd ~/temp $ tar -xjvf asunder-2.4.tar.bz2
configureを実行する際にprefixの場所にアプリ専用ディレクトリを指定しましょう。依存性の解決が終わったらビルドします。
$ cd asunder-2.4 $ ./configure —prefix=/usr/local/myapp/asunder $ make $ sudo make install
#4 実行ファイルとデスクトップファイルのリンク
これまでの作業で/usr/local/myapp/asunderにasunderがインストールされました。このままでは使い勝手が悪いのでシステムにシンボリックリンクを貼ります。/usr/local/myapp/は/usrと同じ構造をしているのでシンボリックリンクで繋いでおきます。
$ sudo ln -s /usr/local/myapp/asunder/bin/asunder /usr/bin/ $ sudo ln -s /usr/local/myapp/asunder/share/applications/asunder.desktop /usr/share/applications $ sudo ln -s /usr/local/myapp/asunder/share/locale/ja/LC_MESSAGES/asunder.mo /usr/share/locale/ja/LC_MESSAGES/ $ sudo ln -s /usr/local/myapp/asunder/share/pixmaps/asunder.png /usr/share/pixmaps/
以上でインストールは完了です。メニューにもasunderが追加されました。
アンインストール編
アンインストールは作ったアプリ専用ディレクトリを削除するという非常にシンプルな方法です。しかし、シンプル故にシステムに影響を与えずクリーンに削除することが可能です。
#1 アプリ専用ディレクトリの削除
これは単純です。作成したasunder用のディレクトリを削除するだけす。
$ sudo rm -r /usr/local/myapp/asunder
#2 実行ファイルとデスクトップファイルのリンクの削除
事前にリンク切れのファイルがあるか確認してみましょう。
$ cd /usr/ $ find -xtype l
では、リンク切れのシンボリックを削除しましょう。以下コマンドはfindで見つけたリンク切れのシンボリックを全て削除しますので、心配な方はasunderに関わる部分のみ手動で削除してください。
$ cd /usr $ sudo rm $(find -xtype l)
最後に
いかがだったでしょうか?もっと良いアイデアがあるという方や、単純すぎて拍子抜けした方もいるかも知れません。今回の例は筆者個人のシステム内での運用例です。最近はソースからビルドしなくても各ディストロのリポジトリやサードパーティ製のリポジトリにソフトがそろっていてソースからビルドする機会も減りましたが、この記事が何かの役にたてば幸いです。 [adsense]