共有ライブラリの管理

 

共有ライブラリ:実行ファイルとは別ファイルに分けられたプログラムの部品

 

●必要な共有ライブラリの調査とインストール

ダイナミックリンク:
実行ファイルにはライブラリの名称だけを記録して、実行時にそのライブラリを呼び出すこと
ダイナミックリンクで利用されるライブラリを共有ライブラリと呼ぶ

必要とされる共有ライブラリがインストールされてない場合は、その実行ファイルはエラーになる

「ldd プログラム名」でその実行ファイル(プログラム)が必要としている共有ライブラリのリストが表示される

共有ライブラリをインストールするには、

  1. 環境変数 LD_LIBRARY_PATHに共有ライブラリのディレクトリ名を記述する
  2. /etc/ld.so.confファイルに共有ライブラリのディレクトリ名を記述し、
    その後 ldconfigコマンドを実行(/etc/ld.so.cacheファイルが更新される)
  3. /usr/lib、または/libに共有ライブラリを置く

のいずれかを行う

プログラムを実行した時、
上記の順番で共有ライブラリが検索される

 

 

ソースファイルからのソフトウェアインストール

 

Linuxにプログラムをインストールするには、

方法がある

 

●tarボールの展開

tarボール:
複数のソースコードファイルとドキュメントなどを、tarコマンドによって1つのファイル(アーカイブ)にまとめたもの
tar という拡張子が付けられている

一般的にtarボールが配布される場合には、
gzipコマンド、またはgunzipコマンドで圧縮・解凍され、
tar.gz もしくは tgz という拡張子が付けられている

コマンド 説明 書式 主なオプション 補足
gzip ファイルの圧縮・解凍 gzip [オプション] [ファイル名] -d
圧縮されたファイルを解凍する
tar アーカイブの作成・
アーカイブからファイルを取り出す
tar [オプション] [ファイル名] x :
アーカイブからファイルを取り出す

c:
アーカイブを作成

f :
ファイル名を指定する

z :
gzipによる圧縮・解凍を行う

v :
詳細情報を表示

 

●コンパイルとインストール

  1. 展開されたtarボールディレクトリにある、configureスクリプトを実行
    (そのプログラムのコンパイル手順が書かれたMakefileファイルの作成と、
    コンパイルに必要な環境をチェックする)
  2. makeコマンドでプログラムをコンパイルする
  3. make installコマンドで生成された実行ファイルや設定ファイルをインストールする
    (/usr/local以下のように一般ユーザが書き込めないディレクトリがインストール先の場合は、スーパーユーザ(root)で実行する必要がある)

 

 

RPMパッケージの管理

 

パッケージ:

ソフトウェアに関連するファイルと、
ファイルやソフトウェア間の依存関係情報を格納している

 

●RPM(Red hat Package Manager)

Red Hat Linux、Turbolinux、Vine Linuxなどで採用されているパッケージを管理する仕組み
誤って依存関係を壊すことを避けられる
またインストール済みパッケージ情報を調べたり、
あるパッケージからインストールされたファイルを調べたりすることができる

RPM形式のパッケージファイルには .rpmという拡張子が付く
このファイルには、コンパイル済み実行ファイル、設定ファイル、ドキュメント別パッケージへの依存関係情報などが含まれている

 

rpm [オプション1オプション2]

オプション1 オプション2
-i パッケージファイル名:
パッケージをインストールする

-U パッケージファイル名:
パッケージをアップブレードする
(インストールされていない場合は、
新たにインストールする)

-F パッケージファイル名:
--freshen パッケージファイル名:
パッケージをアップブレードする
(インストールされていない場合は、
インストールしない)

-V

-v :
操作対象のパッケージを表示する

-h :
進行状況を表示する

--force :
強制的にファイルが上書きされる

--nodeps :
依存関係を無視して実行する

--test :
テストする
(実際には行われない)

rpm -ivh package-4.0.i386.rpm
パッケージをインストールする
(依存関係を損なう場合には動作は中止される)

rpm -U --nodeps package-4.1.i386.rpm
パッケージをアップグレードする
(依存関係を損なう場合でも行われる)

-q :
パッケージ情報を表示する
-a :
すべてのパッケージを対象とする

-c :
設定ファイルのみを表示する

-d :
ドキュメントのみ表示する

-f ファイル名 :
ファイル名がどのパッケージによって
インストールされたか(持ち主)を表示する

-i :
パッケージ情報を表示する
(インストールのオプションとは別モノ)

-l :
パッケージ内の全ファイルをリスト表示する

-p パッケージ名 :
パッケージを指定する

rpm -q samba
sambaパッケージがインストールされていれば表示される

rpm -qa
インストールされているパッケージ全てがリスト表示される

rpm -qf /etc/httpd
/etc/httpdの持ち主のパッケージを表示する

rpm -qi sendmail
sendmailパッケージの詳細情報を表示する

rpm -ql sendmail
sendmailパッケージから
インストールされたファイルをリスト表示する

-e パッケージファイル名:
パッケージを削除する
--nodeps :
依存関係を無視して実行する

--test :
テストする
(実際には行われない)

rpm -e package-4.1.i386.rpm
パッケージをアンインストールする
(依存関係を損なう場合には動作は中止される)

rpm -e --test package-4.1.i386.rpm
パッケージのアンインストールをテストする

 

 

●パッケージ形式の変換

alienコマンドによって、ある形式のファイルを別な形式に変換することが可能

alien [オプション] パッケージファイル名

オプション 形式 変換後の拡張子
-r RPMパッケージへ変換する .rpm
-d debパッケージへ変換する .deb
-t ソースファイル(tarボール)へ変換する .tar.gz

 

 

 

 

 

 

 

 

 

inserted by FC2 system