web-dev-qa-db-ja.com

Yumパッケージ固有のモジュールのインストール

私は最近texliveパッケージで遊んでいて、yum install 'tex(package.sty)'コマンドでtexスタイルのパッケージをインストールする方法があることを発見しました。パッケージ名がそのように指定されているのを見たことがありません。 yumのmanページをざっと読んでも、関連情報は得られませんでした。

いくつかグーグルした後、同様の方法で Perlモジュールをインストールする可能性 の言及を見つけました。 yum install 'Perl(Net::Telnet)'。うまくいきませんでした。

誰かがこのタイプのパッケージ名をyumで指定することについてもっと情報を提供できますか?同様の方法でインストールできる(tex以外の)他のパッケージモジュールはありますか?私のシステムでそのようなパッケージのリストを取得できますか?これは、対応するパッケージ(この場合はtexlive)のインストール中にプラグインとしてyumに追加される追加機能ですか?

Linux Distro:CentOS 7

5
golem

パッケージPerl(Net::Telnet)は、いわゆる仮想パッケージです。それらは名前だけに存在し、本質的に名前が実際に_Perl-Net-Telnet_である実際のパッケージの「エイリアス」です。

これらのパッケージは、提供または必要に応じて、_.spec_ファイル内の定義を通じて存在します。このパッケージの一部、_Perl-Net-HTTP_をご覧ください。

_$ more $HOME/rpmbuild/SPECS/Perl-Net-HTTP.spec
...
BuildRequires:  Perl(IO::Socket::IP)
BuildRequires:  Perl(IO::Socket::SSL) >= 1.38
BuildRequires:  Perl(IO::Uncompress::Gunzip)
BuildRequires:  Perl(Symbol)
BuildRequires:  Perl(URI)
BuildRequires:  Perl(vars)
_

このようにパッケージ名を指定する利点は、依存関係が特定のバージョン番号に依存する必要がないことです。ここで、依存関係は、「Xの古いバージョンだけが必要だ」と言うことができます。

注:これらの名前はyum install 'Perl(X)'を実行する場合にのみ機能し、_yum search_または_yum info_では機能しません、 例えば。 yumのマニュアルページを見ると、「SPECIFYING PACKAGE NAMES」でYUMのすべてのコマンドで動作することが保証されているパッケージの真の名前について説明しています。 " セクション。

他にどのように言うことができますか?

これらのいずれかをインストールしてyumの詳細なメッセージングを有効にしようとすると、ヒントが表示されます。

_$ Sudo yum --verbose install "Perl(Net::HTTP)"
Not loading "blacklist" plugin, as it is disabled
Loading "fastestmirror" plugin
Loading "langpacks" plugin
Loading "refresh-packagekit" plugin
Loading "tsflags" plugin
Not loading "whiteout" plugin, as it is disabled
Adding en_US to language list
Config time: 0.015
Adding en_US to language list
Yum version: 3.4.3
rpmdb time: 0.000
Setting up Package Sacks
Loading mirror speeds from cached hostfile
 * Fedora: mirror.nexcess.net
 * rpmfusion-free: mirror.pw
 * rpmfusion-free-updates: mirror.pw
 * rpmfusion-nonfree: mirror.pw
 * rpmfusion-nonfree-updates: mirror.pw
 * updates: mirror.nexcess.net
pkgsack time: 0.043
Checking for virtual provide or file-provide for Perl(Net::HTTP)
Obs Init time: 0.385
Package Perl-Net-HTTP-6.06-4.fc20.noarch already installed and latest version
Nothing to do
_

「仮想提供」と「ファイル提供」の言及に注目してください。これらは、yumの依存関係エンジンであり、一致するものを探す他のパッケージに、名前で指定したものを「提供」するパッケージを探します(つまり、Perl(Net::HTTP))。

repoqueryにも頼って、この関係を示すこともできます。

_$ repoquery -a --whatprovides 'Perl(Net::HTTP)'
Perl-Net-HTTP-0:6.06-4.fc20.noarch
_

参考文献

7
slm