yumパッケージ別モジュールのインストール

yumパッケージ別モジュールのインストール

私は最近パッケージを使って遊んで、コマンドを使ってtexスタイルのパッケージをインストールするtexlive方法があることを発見しました。yum install 'tex(package.sty)'私は以前にこのように指定されたパッケージ名を見たことがありません。 yumのマニュアルページを閲覧しても関連情報は表示されませんでした。

インターネット検索を行った後、次の言及が見つかりました。Perlモジュールのインストール可能性同様に、yum install 'perl(Net::Telnet)'例えば次のようになります。しかし、私には効果がありません。

誰かがこのタイプのyum指定パッケージ名に関する追加情報を提供できますか?同じようにインストールできる他のパッケージ(texに加えて)モジュールはありますか?私のシステムからそのパッケージのリストを取得できますか?そのパッケージのインストール中にyumにプラグインとして追加されたアドインですか(texliveこの場合)?

Linuxディストリビューション:CentOS 7

答え1

これらのパッケージはいわゆるperl(Net::Telnet)仮想パッケージと呼ばれます。これは名前でのみ存在し、本質的に名前がtrueの実際のパッケージの「エイリアス」です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「すべての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

引用する

関連情報