최근 패키지를 가지고 놀다가 명령을 사용하여 tex 스타일 패키지를 설치하는 texlive
방법이 있다는 것을 발견했습니다 . yum install 'tex(package.sty)'
나는 이전에 이와 같이 지정된 패키지 이름을 본 적이 없습니다. yum 매뉴얼 페이지를 탐색해도 관련 정보가 나오지 않았습니다.
인터넷 검색을 한 후 다음과 같은 언급을 찾았습니다.Perl 모듈 설치 가능성비슷한 방식으로, yum install 'perl(Net::Telnet)'
예를 들면 다음과 같습니다. 하지만 나에게는 효과가 없습니다.
누군가 이러한 유형의 yum 지정 패키지 이름에 대한 추가 정보를 제공할 수 있습니까? 비슷한 방식으로 설치할 수 있는 다른 패키지(tex 외에) 모듈이 있습니까? 내 시스템에서 해당 패키지 목록을 얻을 수 있나요? 해당 패키지를 설치하는 동안 yum에 플러그인으로 추가된 추가 기능입니까( texlive
이 경우)?
리눅스 배포판: 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