私は最近パッケージを使って遊んで、コマンドを使って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