個人的なメモです。
##共有ライブラリの管理
###☆ライブラリ
・複数のアプリケーションからよく使用される機能を関数として実装し、複数の関数を種類ごとにファイルにまとめたもの
・静的ライブラリと共有ライブラリの2種類がある
(表)ライブラリの種類
主な種類 | 説明 | 使用方法 |
---|---|---|
静的ライブラリ | プログラム作成時にその実行ファイル内に組み込まれるもの | 静的リンク |
共有ライブラリ | プログラムの実行時にロードされ、複数のプログラム間で共有されるもの | 動的リンク/動的ロード |
※動的リンカ/ローダによる自動的なロードとリンクを動的リンク、アプリケーションがAPIによって共有ライブラリを使用することを動的ロードと呼ぶ。通常は動的リンクだが、特別なアプリケーション(PAMやApache)だけ動的ロードを用いる
###☆共有ライブラリの設定
以下の順で行う
①**/etc/ld.confにディレクトリパスを追加
②ldconfigコマンドで/etc/ld.confを参照して適切なシンボリックファイルを作成し、共有ライブラリのパスを/etc/ld.cacheファイル**に書き込む
ldconfigコマンド・・・共有ライブラリを認識させるため、/etc/ld.so.confを/etc/ld.so.cacheに反映するときに使う
/etc/ld.conf・・・共有ライブラリの検索パスを記載しておく設定ファイル
/etc/ld.cache・・・共有ライブラリの名前と実際のファイルの置き場所が書いてあるファイル
ユーザーごとに共有ライブラリを追加したい場合は環境変数LD_LIBRARY_PATHを用いて、以下の順番で目的のライブラリを検索
①環境変数LD_LIBRARY_PATHで指定されたディレクトリパス配下
②/etc/ld.so.cache ファイルで指定されたディレクトリパス配下
③/lib と /usr/lib ディレクトリ配下
###☆共有ライブラリの確認
lddコマンドを使用し、プログラムで必要とする共有ライブラリを確認できる
##RPM/yumパッケージ管理
###☆パッケージ管理システム
・ソフトウェアをパッケージというファイル単位で管理するシステム
・パッケージは実行形式に変換したバイナリのほか、ライブラリや設定ファイル、マニュアルなどを1つにまとめたもの。また、パッケージを管理する上で必要となる依存情報も含まれている
・主なパッケージ管理システムにはRPM形式とDebian形式がある
コマンド | RedHat系 | Ubuntu/Debian系 |
---|---|---|
パッケージ形式 | rpm形式 | deb形式 |
パッケージ管理コマンド | rpmコマンド | dpkgコマンド |
リポジトリを利用したパッケージ管理コマンド | yum(dnf)コマンド | apt-cacheコマンド・apt-getコマンド |
###☆RPM形式
・Red Hat LinuxやFedora Linux、CentOs等のRed Hat系ディストリビューションで採用されているパッケージ管理システム
・rpmコマンドやyumコマンドを利用してrpmパッケージの管理を行う
####rpmコマンド
RedHat Package Managerの略
Red Hat系ディストリビューションのパッケージ管理システムの1つ
(表)rpmのオプション
短いオプション | 長いオプション | 説明 |
---|---|---|
-q | --query | 指定したパッケージがインストールされていればバージョンを表示 |
-a | --all | インストール済みのrpmパッケージ情報を一覧で表示 |
-i | --info | 指定したパッケージの詳細情報を表示 |
-f | --file | 指定したファイルを含むrpmパッケージを表示 |
-c | --configfiles | 指定したパッケージ内の設定ファイルのみを表示 |
-d | --docfiles | 指定したパッケージ内のドキュメントのみを表示 |
-l | --list | 指定したパッケージに含まれるすべてのファイルを表示 |
-K | --checksig | パッケージの完全性を確認するために指定されたパッケージファイルに含まれるすべてのダイジェスト値と著名をチェックする |
-R | --requires | 指定したパッケージが依存しているrpmパッケージ名を表示 |
-p | --package | インストールされたrpmパッケージではなく、指定したrpmパッケージファイルの情報を表示 |
なし | --changelog | パッケージの更新情報を表示 |
(表)インストール・アップグレードに関するオプション
短いオプション | 長いオプション | 説明 |
---|---|---|
-i | --install | パッケージをインストールする(アップデートは行わない) |
-U | -upgrade | パッケージをアップデートする。インストール済みのパッケージが存在しない場合、新規にインストールを行う |
-F | --freshen | パッケージをアップデートする。インストール済みのパッケージが存在しない場合、何も行わない |
-v | --verbose | 詳細な情報を表示する |
-h | --hash | 進行状況を#記号で表示する |
なし | --force | 指定されたパッケージがすでにインストールされていても上書きインストールを行う |
なし | --oldpackage | 古いパッケージに置き換えることを許可(ダウングレード)する |
なし | --test | パッケージをインストールせず、衝突等のチェックを行い結果を表示する |
(表)アンインストールに関するオプション
短いオプション | 長いオプション | 説明 |
---|---|---|
-e | --erase | パッケージを削除する |
なし | -nodeps | 依存関係を無視してパッケージを削除する |
なし | --allmatches | パッケージ名に一致するすべてのバージョンのパッケージを削除する |
####yumコマンド
rpmと同じくパッケージ管理システムではあるが、rpmはRPMパッケージを扱い、RPMデータベースやRPMパッケージのリポジトリを使用しパッケージを管理するYUMを扱うのがyum。つまり、yumは内部的にrpmを扱っていることになる
機能においてrpmとの大きな違いは以下
1.パッケージの依存関係を自動的に解決する
→このソフトウェアが必要といった依存をチェックして、必要なソフトウェアを自動でインストールできる
2.パッケージファイルを準備する必要はない
→インターネット上のリポジトリ(パッケージを保管・管理している場所)と通信し、簡単にrpmパッケージのインストールや最新情報の入手が可能
rpmにはない便利な機能があるため、基本的にyumを使用する事が多い
(表)検索・表示に関するサブコマンド
主なサブコマンド | 説明 |
---|---|
list | 利用可能な全rpmパッケージ情報を表示 |
list installed | インストール済みをのrpmパッケージを表示 |
info | 指定したrpmパッケージの詳細情報を表示 |
search | 指定したキーワードでrpmパッケージを検索し結果を表示 |
deplist | 指定したrpmパッケージの依存情報を表示 |
list updates | インストール済みのrpmパッケージで更新可能なものを表示 |
check-update | インストール済みのrpmパッケージで更新可能なものを表示 |
(表)インストール・アップグレードに関するサブコマンド
主なサブコマンド | 説明 |
---|---|
install | 指定したrpmパッケージをインストールする。自動的に依存関係も解決する |
update | インストール済みのrpmパッケージで更新可能なものをすべてアップデートする。なお、個別のrpmパッケージを指定して更新することも可能 |
upgrade | システム全体のリリースバージョンアップを行う |
(表)yumの設定ファイル
主な設定ファイル | 説明 |
---|---|
/etc/yum.conf | 基本設定ファイル |
/etc/yum.repos.d ディレクトリ以下に保存されたファイル | リポジトリの設定ファイル |
####その他のコマンド
rpm2cpioコマンド・・・rpmファイルをcpioアーカイブ形式に変換し、標準出力に出力する
yumdownloderコマンド・・・rpmファイルのダウンロードだけをするコマンド。rpmファイルを保存しておけば、最新のパッケージを使用するのではなく、決められたバージョンでマシンを更新しなければならないときに便利
zepperコマンド・・・Libzyppライブラリを利用したコマンドラインによるパッケージ管理ツール。パッケージのインストール、更新、削除、およびリポジトリの管理が可能
(表)zepperのコマンド
コマンド | 説明 |
---|---|
update | パッケージの更新 |
search パッケージ名 | パッケージの検索 |
install パッケージ名 | パッケージのインストール |
remove パッケージ名 | パッケージの削除 |
info パッケージ名 | パッケージの情報を調べる |
repos | リポジトリの一覧表示 |
##Debian/debパッケージ管理
###☆Debian形式
・Debian GNU/LinuxやUbuntu Linux等のDebian系ディストリビューションで採用されているパッケージ管理システム
・dpkgコマンドやapt-getコマンド、apt-cacheコマンドを利用してdebパッケージの管理を行う
####dpkgコマンド
Debian系システムで使われているdebパッケージを扱うパッケージ管理コマンド
(表)表示に関するコマンド
短いオプション | 長いオプション | 説明 |
---|---|---|
-l | --list | インストール済みの全debパッケージの情報を表示。特定のパッケージ情報のみ表示する場合は、-lオプションの後にパッケージ名を指定 |
-s | --status | 指定したパッケージの情報を表示。依存関係も確認可能 |
-L | --listfiles | 指定したパッケージに含まれるすべてのファイルを表示 |
-S | --search | インストール済みのパッケージから指定されたファイルを検索 |
-I | --info | 指定したパッケージの詳細情報を表示 |
-C | --audit | インストールが完了していないパッケージを検索 |
-c | --contents | インストールされたパッケージではなく、指定したdebパッケージファイルに含まれるファイルの一覧を表示 |
(表)アンインストールに関するオプション
短いオプション | 長いオプション | 説明 |
---|---|---|
-r | --remove | パッケージは削除するが、設定ファイルは残したままとする |
-P | --purge | 設定ファイルも含め完全にパッケージを削除する |
(表)インストール・アップグレードに関するオプション
短いオプション | 長いオプション | 説明 |
---|---|---|
-i | --install | パッケージをインストールする |
-E | --skip-same-version | すでに同じバージョンのパッケージがインストールされている場合は何も行わない |
-G | --refuse-downgrade | すでに新しいバージョンのパッケージがインストールされている場合は何も行わない |
####dpkg-reconfigureコマンド
指定したインストール済みのパッケージに対し設定内容を変更することが可能
####apt-cacheコマンド
debパッケージをより効率よく管理するためのツール「APT」を使用する主なコマンドはapt-cacheコマンド、apt-getコマンドがあり、パッケージの依存関係を自動的に解決する
apt-cacheコマンドは、debパッケージ情報の検索、表示に使用する
(表)apt-cacheのサブコマンド
主なサブコマンド | 説明 |
---|---|
pknames | すべてのdebパッケージを一覧表示 |
search | 指定したキーワードを含むパッケージを表示。複数キーワードや正規表現を用いたキーワードの指定が可能 |
show | 指定したパッケージの詳細情報と、依存情報を表示 |
depends | 指定したパッケージの依存情報関係と、依存関係を満たすほかのパッケージの一覧の表示 |
####apt-getコマンド
debパッケージのインストール、アップグレード、アンインストールに使用するコマンド
(表)apt-getのサブコマンド
主なサブコマンド | 説明 |
---|---|
install | 依存関係をチェックし、パッケージをインストールする |
upgrade | アップグレード可能なdebパッケージをすべて更新する。現在インストール中のパッケージの削除は行わない |
update | パッケージデータベースを更新する |
dist-upgrade | 古いパッケージの削除を含め、現在インストールされている全パッケージを更新する |
remove | debパッケージをアンインストールする |
/etc/apt/sources.list・・・apt-getコマンドは、/etc/apt/sources.listに記述された入手リストに従い、パッケージをインストールする