linux下rpmパッケージのインストール


1.rpmパッケージのインストール方法
rmpパッケージのインストールは、プログラムrpmを使用して行うことができます.次のコマンドを実行します.
  
rpm -i your-package.rpm

その中でrpmはインストールするrpmパッケージのファイル名で、一般的に現在のディレクトリの下に配置されます.
インストール中に次の警告またはプロンプトが表示されることがあります.
  ... conflict with ... インストールするパッケージに既存のファイルを上書きするファイルがあるかもしれませんが、デフォルトでは正しくインストールできません.
rpm--force-i強制インストールでOK
  ... is needed by ...
  ... is not installed ... このパッケージに必要なソフトウェアはインストールされていません.
rpm--nodeps-iこの情報を無視
つまり、rpm-i-force-nodepsはすべての依存関係やファイルの問題を無視して、どんなパッケージでもインストールできますが、このような強制的にインストールされたパッケージは完全に機能する保証はありません.
  2.インストール方法src.rpmパッケージ
一部のパッケージは.src.rpmの最後に、このようなパッケージはソースコードを含むrpmパッケージであり、インストール時にコンパイルする必要がある.このようなパッケージには2つのインストール方法があります.
方法1:
  1.rpm-i your-packageを実行します.src.rpm
  2. cd/usr/src/redhat/SPECS
  3. rpmbuild -bp your-package.specsあなたのパッケージと同じ名前のspecsファイル
  4. cd/usr/src/redhat/BUILD/your-package/あなたのパッケージと同じ名前のディレクトリ
  5. ./configureこのステップは、通常のソースソフトウェアをコンパイルするのと同じように、パラメータを加えることができます.
  6. make
  7. make install
方法2:
  1.rpm-i you-packageを実行します.src.rpm
  2. cd/usr/src/redhat/SPECS
前の2つのステップと方法は同じです.
  3. rpmbuild -bb your-package.specsあなたのパッケージと同じ名前のspecsファイル
この場合、/usr/src/redhat/RPM/i 386/(具体的なパッケージによってはi 686、noarchなど)
このディレクトリの下に、コンパイルされたバイナリファイルである新しいrpmパッケージがあります.
rpm-i new-packageを実行する.rpmでインストールが完了します.
  3.rpmパッケージをアンインストールする方法
コマンドrpm-eのパケット名を用いる、パケット名にはバージョン番号などの情報を含めることができるが、接尾辞を付けることはできない.rpm
たとえば、パッケージproftpd-1.2.8-1をアンインストールするには、次のフォーマットを使用します.
  rpm -e proftpd-1.2.8-1
  rpm -e proftpd-1.2.8
  rpm -e proftpd-
  rpm -e proftpd
次のフォーマットは使用できません.
  rpm -e proftpd-1.2.8-1.i386.rpm
  rpm -e proftpd-1.2.8-1.i386
  rpm -e proftpd-1.2
  rpm -e proftpd-1
エラーや警告が発生することがあります.
  ... is needed by ... これはこのソフトウェアが他のソフトウェアに必要とされ、勝手にアンインストールできないことを示しています.
rpm-e--nodepsで強制的にアンインストールできます
  4.rpmパッケージのファイルをインストールせずに取得する方法
ツールrpm 2 cpioとcpioの使用
  rpm2cpio xxx.rpm | cpio -vi
  rpm2cpio xxx.rpm | cpio -idmv
  rpm2cpio xxx.rpm | cpio --extract --make-directories
パラメータiはextractと同じで、抽出ファイルを表します.v実行プロセスを示す
d make-directoryと同様に、パッケージ内のファイルの元のパスに基づいてディレクトリを作成することを示す
mは、保持ファイルの更新時間を示す.
  5.rpmパッケージに関連するファイルおよびその他の情報の表示方法
以下のすべての例では、パッケージmysql-3.23.54 a-11を使用すると仮定します.
  1.私のシステムにはrpmパッケージがインストールされています
rpm-qaはインストールされたすべてのパッケージをリストします
インストールされた文字列sqlを含むすべてのパッケージを検索する場合
  rpm -qa |grep sql
  2.パッケージのファイルのフルネームを取得する方法
rpm-q mysqlは、システムにインストールされているmysqlパッケージのフルネームを取得し、現在のパッケージのバージョンなどの情報を取得できます.この例ではmysql-3.23.54 a-11の情報が得られる
  3.rpmパッケージのファイルはどこにインストールされましたか?
rpm-qlパッケージ名
ここには含まれていないことに注意してください.rpm接尾辞のパッケージ名
すなわちmysql-3.23.54 a-11ではなくmysqlまたはmysql-3.23.54 a-11しか使用できない.rpm.
実行可能なプログラムを知りたいだけなら、whichを使ってもいいです.例えば
  which mysql
  4.rpmパッケージに含まれるファイル
インストールされていないパッケージはrpm-qlp****.rpm
既にインストール済みのパッケージはrpm-ql****を使用することもできる.rpm
  5.パッケージのバージョン、用途などに関する情報をどのように取得しますか?
インストールされていないパッケージで、rpm-qip****.rpm
既にインストール済みのパッケージはrpm-qi****を使用することもできる.rpm
  6.あるプログラムがどのパッケージにインストールされているか、またはどのパッケージにこのプログラムが含まれているか
rpm-qf`whichプログラム名`はパッケージのフルネームを返す
rpm-qif`whichプログラム名`はパッケージに関する情報を返す
rpm-qlf`whichプログラム名`はパッケージのファイルリストを返します
注意、ここは引用符ではなく`、キーボードの左上のキーです.
rpm-qilfを使用して、パッケージ情報とファイルリストを同時に出力することもできます.
  7.ファイルがどのパッケージにインストールされているか、またはどのパッケージにこのファイルが含まれているか
前の問題のメソッドは、実行可能なプログラムにのみ適用されますが、次のメソッドは、実行可能なプログラムだけでなく、一般的なファイルにも使用できます.前提はこのファイル名を知っていることです.
まず、whereisまたはwhichを使用して、rpm-qfを使用して、このプログラムの完全なパスを取得します.
  # whereis ftptop
  ftptop:/usr/bin/ftptop/usr/share/man/man1/ftptop.1.gz
  # rpm -qf/usr/bin/ftptop
  proftpd-1.2.8-1
  # rpm -qf/usr/share/doc/proftpd-1.2.8/rfc/rfc0959.txt
  proftpd-1.2.8-1
まとめ:
パッケージに関する情報を取得するにはrpm-q,qでクエリーqueryを表し、後で他のオプション、例えば
iはinfoを表し、パッケージの情報を取得する.
lはlistを表し、ファイルリストを取得する.
aはallを表し、すべてのパケットでクエリーを実行する.
fはfileを表し、ファイルに基づいて関連するクエリーを行う.
pはパッケージを表し、パッケージに基づいてクエリーを行う
必要なクエリー条件はgrepを使用して生成するか、「``」のコマンドラインから生成することができます.
  6.rpmパッケージに関するいくつかの知識
  1.rpmとは
rpmはRedHat Package Managementであり、RedHatの発明の一つである
  2.なぜrpmが必要なのか
1つのオペレーティングシステムでは、さまざまな機能を実現するパッケージをインストールする必要があります.これらのパッケージには一般的にそれぞれのプログラムがありますが、複雑な依存関係もあります.また、パッケージのバージョン、インストール、構成、アンインストールの自動化の問題も解決する必要があります.これらの問題を解決するために、RedHatは自分のシステムに対して何千ものソフトウェアを管理する良い方法を提案した.これがRPM管理システムです.システムにrpm管理システムをインストールした後、rpmファイルの標準に合致するパッケージのプログラムであれば、便利にインストール、アップグレード、アンインストールすることができます.
  3.すべてのlinuxがrpmを使用しているのではないでしょうか.
どのシステムもパッケージ管理システムが必要なため、多くのlinuxはrpmシステムを使用しています.ただしrpm系はRH専用だがTL,Mandrakeなどもrpmを用いている.rpmのソースプログラムは他のシステムでコンパイルできるため、他のシステムでもrpmを使用する可能性があります.rpmのほかに、debianのdebパッケージ、slakwareなどの独自のパッケージ管理プログラムもあります.
  4.rpmパッケージのファイル名はなぜそんなに長いのか
rpmパッケージのファイル名には、このパッケージのバージョン情報、オペレーティングシステム情報、ハードウェア要件などが含まれています.
例えばmypackage-1.1-2 TL.i386.rpm、うちmypackageはシステムに登録されているパッケージの名前です
1.1はソフトウェアのバージョン番号、2はリリース番号、TLはTLオペレーティングシステム用、RHなどを示しています.i 386はintel x 86プラットフォームに用いられ、sparcなどである可能性もあることを示す.
  5.パッケージファイル名のi 386,i 686はどういう意味ですか.
rpmパッケージのファイル名には、ソフトウェア名、バージョン情報だけでなく、適用可能なハードウェアアーキテクチャの情報も含まれています.
i 386は、このパッケージがintel 80386以上のx 86アーキテクチャに適したコンピュータ(AI 32)を指す.
i 686とは、このパッケージがintel 80686以上(Pentiumpro以上)のx 86アーキテクチャに適したコンピュータ(IA 32)を指す.
Noarchとは、このパッケージがハードウェアアーキテクチャに関係なく汎用できることを意味します.
i 686パッケージのプログラムは通常CPUに対して最適化されているので、i 386のパッケージは
x 86機械でも使えます.以前は一般的に互換性がありません.しかし、現在のコンピュータでは、Pentiumpro以下のCPUはあまり使われておらず、通常構成されているマシンではi 686パッケージが使用できます.
  6.異なるオペレーティングシステムで発行されたrpmパッケージは混用できますか?
バイナリにコンパイルされたrpmパケットは、オペレーティングシステム環境によっては混用できないのが一般的です.
src.rpm発行のパッケージは、インストールが必要な場合にローカルコンパイルを行うため、通常は異なるシステムでインストールできます.
  7.rpmを使用するときに発生するいくつかの特殊な問題
Q rpm-e**.rpm rpmはrpmパッケージを削除できません
Aパッケージ名にrpmは含まれないでください.
rpm-eパッケージ名は、バージョン番号などの情報を含むことができるが、接尾辞は使用できない.rpm
Q MSのシステムの下でRPMファイルを読むツールはありますか?
  A wincmd with rpm plugins.....
Q ftpインストールでアップグレードrpmパッケージをインストールできますか?
Aでいいです.rpm -ivh ftp://xxxxxxxx/PATH2SomeRPM
Q rpmインストール時に既存のパッケージバージョンが高すぎる場合はどうすればいいですか?
Aインストールされているパッケージが古く、システムに関連するパッケージのバージョンが比較的新しい場合があるため、インストールする必要があるパッケージに依存するファイルが見つからない場合があります.2つの解決策があります
1つ目は、システムファイルで必要なファイルと同じ機能または似たようなファイルを見つけ、必要なディレクトリにシンボルリンクすることです.