Linuxソフトウェア管理のソースコード及びRPMパッケージ管理とYUMパッケージ管理


Linuxシステムの下で、ソフトウェアパッケージの管理に対して多種のメカニズムがあって、アクティブコード方式、RPMソフトウェアパッケージの管理方式とYUMソフトウェアの管理方式
一、ソースコード形式
まず、ソースコードの方法を見てみましょう.オープンソース環境では、ほとんどのオープンソースソフトウェアがソースコードとして公開され、通常はソースコードをtarにパッケージ化することを知っています.gzのアーカイブ圧縮ファイルは、ダウンロード用にネットワークに公開されています.しかし、私たちがダウンロードしたソースコードの方式はまだ直接使用することができなくて、windowsシステムの上で直接ダウンロードして実行できるバイナリファイルとは違って、私たちはダウンロードしたソースコードを実行可能なバイナリファイルにコンパイルして使用する必要があります.ソースコード形式のインストールプロセスは一般的に以下の通りです.
①./configureコンパイル環境、関連ライブラリファイル、および構成パラメータをチェックしmakefileを生成
②makeソースコードを実行可能なバイナリファイルにコンパイル
③make installインストールコンパイルされた実行可能ファイル
基本的にソースコード形式で公開されているソフトウェアはすべて以上の流れでインストールされていますが、実際には手順はこの3つで、インストールプロセスは非常に簡単だと思います.実はそうではありません.通常、ソースコード形式で配布されるソフトウェアは、①、②ステップ操作を行う際に多くの問題が発生します.例えば、コンパイル中に必要なライブラリファイルが不足したり、ソースコードをコンパイルする際にAファイルに依存したりする必要があります.Aファイルをコンパイルする際にBファイルを使用する必要がある場合があります.このように、依存の問題を探すのに多くの時間がかかります.また、ソフトウェアが特に大きい場合は、コンパイル中に非常に長い時間を待たなければなりません.だから、ソース形式のインストールソフトウェアは私たちが想像していたほど簡単ではありませんが、なぜソース形式のソフトウェア管理がずっと存在しているのでしょうか.必ずその利点もあります.私たちのソースコードは実行可能なバイナリファイルにコンパイルされなければならないので、さまざまなオペレーティングシステムプラットフォームに適用されます.私は各オペレーティングシステムプラットフォームでソースコードをコンパイルするだけで実行できます.
まとめてみます.
ソース形式の欠点:操作が複雑で、コンパイル時間が長く、エラーが発生しやすい
ソース形式の利点:すべてのオペレーティングシステムに適用され、カスタマイズ可能
二、RPMパッケージ管理
ソース方式のソフトウェアのインストールは結局面倒なので、今ではソース方式のインストールに代わるソフトウェア管理メカニズムがたくさん現れている.RPMはその1つであり、RPM(redhat Package Manager)は、開発したオープンソースソフトウェアフォーマットの使用を容易にするために開発されたものであり、その設計目標は以下の通りである.
①rpmコマンドで簡単にrpmソフトウェアのインストールができます
②単一パッケージ形式で配布(.rpmファイル)rpmパッケージが1つしかないことがわかります.rpmのファイル(rpmパッケージ管理メカニズムでは、パッケージが.rpmで終わる必要があります)
③アップグレード可能なrpmパッケージはアップグレード可能です.例えば、新しいバージョンのrpmソフトウェアをダウンロードしました.rpm-uコマンドでアップグレードできます.
④トレース依存rpmパッケージ管理メカニズムは、ソフトウェア間の依存関係をトレースすることができ、インストール時に非常に便利である
⑤ソフトウェア基本情報の保存
⑥ソフトウェア検証機能
⑦マルチプラットフォームサポートマルチプラットフォームは、1つのrpmソフトウェアが複数のオペレーティングシステムプラットフォーム上で実行できるというのではなく、複数のプラットフォームに対して異なるrpmパッケージをリリースするということです
RPMパッケージでよく使用されるネーミング仕様は次のとおりです.
centos-release-6-6.el6.centos.12.2.i686.rpm
ここでcentos-releaseは私たちのソフトウェアの名前で、6-6はこのソフトウェアのバージョン番号で、el 6.centos.12.2.i 686の2つの部分は、rpmパッケージの実行プラットフォームのオペレーティングシステムバージョンを指します.例えばel 6はRHEL 6の発見バージョンに対して、どのバージョンのLinuxオペレーティングシステムを使用しているのかを示し、対応するrpmバージョンをダウンロードし、i 686は64ビットで実行されているシステムを示します.
RPMの基本コマンド:
rpmの使い方は非常に簡単で、よく使われるコマンドは以下の通りです.
インストールソフト:rpm-i centos-release-6-6.el6.centos.12.2.i686.rpm
アンインストールソフトウェア:rpm-e centos-release
アップグレード形式インストール:rpm-U centos-release-6-6.el6.centos.12.2.i686.rpm
共通パラメータ:
-v詳細表示
-hテキスト進捗バーを表示し、#で表示
例えばtigervncのrpmパッケージをインストールして実験します.
[root@xiaoluo home]# rpm -ivh tigervnc-1.1.0-5.el6.x86_64.rpm   //             -ivh  ,          
Preparing...                ########################################### [100%]  
1:tigervnc                  ########################################### [100%]


インストールプロセスはパッケージの大きさやマシンの構成時間によって異なりますが、このrpmはすでにインストールされていることがわかりました.
アンインストールする場合も簡単ですが、rpm-eソフトウェア名でアンインストールできます.
[root@xiaoluo home]# rpm -e tigervnc

これでrpmソフトウェアはアンインストールされ、rpm-Uソフトウェアの名前を使用してrpmソフトウェアをアップグレードすることができます.
RPM共通クエリーコマンド:
rpm-qaインストールされているすべてのrpmソフトウェアをリストします
rpm-qf filenameクエリー指定ファイルがどのrpmパッケージに属するかを指定
rpm-qi packagenameインストールパッケージの情報を問い合わせる
rpm-ql packagenameクエリー指定パッケージに含まれるファイルおよびパス
rpm -qip software.rpm rpmクエリーrpmファイルの情報
rpm -qilp software.rpmクエリーrpmファイルに含まれるファイル
たとえば、現在のオペレーティングシステムにインストールされているすべてのrpmソフトウェアをrpm-qaコマンドで表示します.
[root@localhost ~]# rpm -qa
gnome-vfs2-smb-2.24.2-6.el6.i686
oddjob-0.30-5.el6.i686
desktop-effects-0.8.4-7.el6.i686
cloog-ppl-0.15.7-1.2.el6.i686
NetworkManager-gnome-0.8.1-75.el6.i686
totem-mozplugin-2.28.6-4.el6.i686
newt-0.52.11-3.el6.i686
iputils-20071127-17.el6_4.2.i686
system-config-keyboard-1.3.1-6.el6.i686
pygtk2-libglade-2.16.0-3.el6.i686
audit-2.3.7-5.el6.i686
******************************** N ********************************************

filesystemソフトウェアの詳細を表示する必要がある場合は、rpm-qi filesystemコマンドで次の操作を行います.
[root@localhost ~]# rpm -qi filesystem
Name        : filesystem                   Relocations: (not relocatable)
Version     : 2.4.30                            Vendor: CentOS
Release     : 3.el6                         Build Date: Fri 23 Sep 2011 07:49:00 PM CST
Install Date: Mon 29 Jun 2015 09:59:16 PM CST      Build Host: c6b6.bsys.dev.centos.org
Group       : System Environment/Base       Source RPM: filesystem-2.4.30-3.el6.src.rpm
Size        : 0                                License: Public Domain
Signature   : RSA/SHA1, Mon 26 Sep 2011 12:09:57 PM CST, Key ID 0946fca2c105b9de
Packager    : CentOS BuildSystem <http://bugs.centos.org>
URL         : https://fedorahosted.org/filesystem
Summary     : The basic directory layout for a Linux system
Description :
The filesystem package is one of the basic packages that is installed
on a Linux system. Filesystem contains the basic directory layout
for a Linux operating system, including the correct permissions for
the directories.

現在のオペレーティングシステムファイルの下にあるフォルダがどのrpmパッケージに属しているかを確認する必要がある場合は、rpm-qf filenameコマンドで確認できます.
[root@localhost ~]# rpm -qf /usr/share/mysql
mysql-libs-5.1.73-3.el6_5.i686

指定したrpmパッケージに含まれるファイルを表示する必要がある場合は、rpm-ql packagenameコマンドで表示できます.
[root@localhost ~]# rpm -ql python/usr/bin/pydoc/usr/bin/python/usr/bin/python2/usr/bin/python2.6/usr/share/doc/python-2.6.6/usr/share/doc/python-2.6.6/LICENSE/usr/share/doc/python-2.6.6/README/usr/share/man/man1/python.1.gz