2013年5月20日月曜日

ソフトウェアの管理

Stowを使うと管理が楽ちん!!!という事で使ってみたいと思います。

Stowの概要などは、こちらのサイトに詳しく書かれています!
下記は抜粋になります。
Stowを使ってのパッケージ管理
Stowは、Linuxシステム向けの、簡単で使いやすいフリーのソフトウェア・インストール管理ユーティリティーです。
Stowは、.rpmや .debなどの標準的なパッケージング・フォーマットを使わずに、
tarのソースから直接インストールされるアプリケーションに最適です。

Stowは、所望の任意の場所に設けた専用のディレクトリーにアプリケーションを収容しながら、
要求されている場所にアプリケーションがインストールされているかのように見せるといった方法で、
アプリケーションのインストールを管理します。

Stowでソフトウェア・インストール管理を行うと、
アプリケーションのインストール、アンインストールが簡単になる、
インストールされたアプリケーションや関連するファイルの検出が簡単になる、アップグレードが簡単になる、
収容されているアプリケーションの再構成が簡単になるという具合に、さまざまな利点が得られます。
下記もこちらのサイトの抜粋になります。
Stowを利用してソースからビルドしたソフトウェアを効率的に管理する
Stowの概要

Perlで書かれている
ソースからビルドしたソフトウェアを管理するソフト
任意のディレクトリ/usr/local/stowなどにパッケージ一式をインストール
インストールしたパッケージから/usr/lib/{bin,lib,share}にリンクを貼って利用。
バージョンの切り替えはリンク張り直しで行う(ファイルの上書きはしない)
zsh-4.3.17やzsh-5.0.0などバージョンの切り替えが容易になる(同じようなソフトのpacoと違う点)
とりあえず、ソフトウェアの管理が楽になるってことです!ド━━━━m9(゚∀゚)━━━━ン!!

早速使ってみます!
まずはstowを利用するにあたっての下準備になります。 インストールする。
sudo yum -y install stow
次に、stowで利用する管理用ディレクトリを作成します。
mkdir -p /user/local/stow/
これで下準備は完了です( ´∀`)bグッ!

何か適当なソフトウェアをインストールしてみたいと思います。
ffmpegで利用しているlibvpxを使ってみる!
libvpxのダウンロード
wget http://webm.googlecode.com/files/libvpx-v1.1.0.tar.bz2
解凍
tar xjf libvpx-v1.1.0.tar.bz2
解凍したディレクトリへ移動する
cd libvpx-v1.1.0
makefileの作成
ここで、stow管理用ディレクトリを指定してあげること。
またインストールするディレクトリ名は、バージョン名などを付与してあげる置くことで、
別バージョンが出た場合に、別々で管理できて切り替えが楽チンになります(ΦωΦ)フフフ…
./configure --prefix=/usr/local/stow/libvpx-v1.1.0
コンパイルする
make
インストールする
make install
stow管理用ディレクトリの/usr/local/stowへ移動する
cd /usr/local/stow/
stowを利用してlibvpx-v1.1.0のシンボリックリンクを張る。
stowはデフォルトで、現在いる位置からひとつ上のディレクトリを自動でシンボリックリンクに利用するため、
現在のいる位置の/usr/local/stowで実行したら/usr/localが使われる。
stow -v libvpx-v1.1.0
※stow -v /usr/local opencv-2.4.5でも同じ動作になる。

stowのオプションには、以下のものがあります。
Stowを使ってのパッケージ管理
-v または--verbose[=n] 
 Stowが何を行っているのかの詳しい説明を表示します。nは、詳しさのレベルを、0、1、2、3の4段階で表します。デフォルトは0です。単に-v または--verbose を指定すると、詳しさのレベルが1段階上がります。--verbose=n は、レベルをnにします。
-ddirectoryまたは--dir=directory
 収容ディレクトリーを、カレント・ディレクトリーではなく、directory (所望のディレクトリーへの絶対パス) にします。これによって、directory の親をデフォルトのターゲット・ディレクトリーにすることにもなります。
-tdirectory または--target=directory
 ターゲット・ディレクトリーを、現在の収容ディレクトリーの親ではなく、directory (所望のディレクトリーの絶対パス) にします。
-D または--delete
 ターゲット・ディレクトリーからアプリケーションのsymlinkを削除します。すなわち、アプリケーションの収容解除 (unstow) を行います。
-R または--restow
 アプリケーションの再収容 (restow) を行います (まず収容解除を行ってから、再度収容を行います)。このオプションは、アプリケーションのパッケージ・ディレクトリーに変更を加え、アプリケーションを更新した場合に、ターゲット・ツリーのsymlinkを更新して、不要になったものを除去するときに使用されます。
-c または--conflicts
 収容操作を実行したときに発生するかもしれない情報の不一致を検出します。このオプションは、別のオプション-n (以下参照) といっしょに使用します。ただし、間違った不一致情報が報告される可能性もあります (参考文献 には、Stowのマニュアルの中の情報の不一致に関する章へのリンクを示してあります)。
-n または--no
 収容操作は何も行わず、どんな結果になるかだけを表示します。実際の操作を何も行いませんので、stow -n を実行すると、操作を行った場合に実際に起こるはずの情報の不一致とともに、実在しない情報の不一致を報告する可能性があります (参考文献 には、Stowのマニュアルの中の情報の不一致に関する章へのリンクを示してあります)。
-V または--version
 Stowのバージョンを表示します。
-h または--help
 stowコマンドの記法を表示します。

これで、インストールは完了になります。

libvpxのバージョンがアップして、最新のものに変更した場合には次のようになります。
たとえば、libvpx-v1.1.xが出た場合には、
configureで最初にインストールしたディレクトリ名とは別名を指定する。
./configure --prefix=/usr/local/stow/libvpx-v1.1.x
後は、インストールまで行い、旧バージョンと新バージョンのシンボリックリンクの張替えを行います。
stow管理用ディレクトリの/usr/local/stowへ移動する
cd /usr/local/stow/
stow管理用ディレクトリの中には、libvpx-v1.1.0とlibvpx-v1.1.xが存在している状態になります。
# ls -alt /usr/local/stow/
合計 12
drwxr-xr-x  6 root root 4096  5月 20 13:26 2013 libvpx-v1.1.x
drwxr-xr-x  6 root root 4096  5月 20 13:26 2013 libvpx-v1.1.0
drwxr-xr-x  3 root root 4096  5月 20 13:26 2013 .
drwxr-xr-x 13 root root 4096  5月 20 11:48 2013 ..
この状態でバージョンの切り替えを行う為に、
旧バージョンの「libvpx-v1.1.0」のシンボリックリンクを切ってから、
新バージョンの「libvpx-v1.1.x」のシンボリックリンクを張る作業を行います。

旧バージョンのシンボリックリンクを切る。
stow -Dv libvpx-v1.1.0
新バージョンのシンボリックリンクを張る。
stow -v libvpx-v1.1.x
これで、バージョンの変更は完了ですワーイヽ(゚∀゚)メ(゚∀゚)メ(゚∀゚)ノワーイ

以上です(`・ω・´)ゞビシッ!!
参考URL

0 件のコメント:

コメントを投稿