如何更新虚拟 RPM 包以满足 Fedora 24 上 vim-latex 的依赖关系?

如何更新虚拟 RPM 包以满足 Fedora 24 上 vim-latex 的依赖关系?

我在运行 Fedora 24 的机器上安装了 TeX Live 2016。以前使用 Fedora 时,我安装了一个虚拟texlive包,这样我就可以安装编辑器等,而无需安装 Fedora 的 TeX Live 包。我正尝试在当前 Fedora 上使用当前 TeX Live 重复这一壮举。

使用 Fedora 的软件包不是一个选择。(我宁愿安装不同的 Linux 发行版也不愿这样做,但希望不会发生这种情况。)

我怀疑问题在于我不了解 RPM.spec格式,或者dnf不像了解 ArchPKGBUILD和那样了解pacman(并且我几乎不完全了解这些 - 但我知道在哪里可以找到...)。

这是我正在使用的.spec文件的当前版本texlive-dummy-cfr.spec

Name:    texlive-dummy-cfr
Version: 5.1
Release: 0%{?dist}
Summary: This is a fake TeXLive package
Group:   Applications/Publishing
License: GPLv2 and BSD and Public Domain and LGPLv2+ and GPLv2+ and LPPL
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)                   
Provides: config(texlive)
Provides: kpathsea libkpathsea.so.4()
Provides: tetex tetex-dvips tetex-fonts tetex-latex tex 
Provides: tex(dvips) tex(latex) tex(tex) tex-preview texinfo-tex
Provides: texlive texlive-afm texlive-context texlive-doc texlive-doc-errata
Provides: texlive-dvips texlive-dviutils texlive-east-asian texlive-fonts
Provides: texlive-texmf texlive-latex texlive-utils texlive-xetex          
Provides: texlive-texmf-afm texlive-texmf-context texlive-texmf-doc texlive-texmf-dvips                               
Provides: texlive-texmf-errata texlive-texmf-errata-afm texlive-texmf-errata-context
Provides: texlive-texmf-errata-doc texlive-texmf-errata-dvips texlive-texmf-errata-east-asian
Provides: texlive-texmf-errata-fonts texlive-texmf-errata-latex texlive-texmf-errata-xetex                      
Provides: texlive-texmf-fonts texlive-texmf-latex texlive-texmf-xetex                             
Provides: tetex-IEEEtran tetex-dvipost tetex-elsevier tetex-tex4ht
Provides: tetex-xdvi xdvik
Provides: texlive-base texlive-hyphen-base texlive-kpathsea texlive-kpathsea-bin texlive-lib 
Provides: texlive-kpathsea-doc texlive-lib texlive-xdvi-bin texlive-dvi
Provides: texlive-metafont texlive-metafont-bin texlive-tetex texlive-tetex-bin 
Provides: texlive-texlive.infra() texlive-texlive.infra-bin() 

%description
This was necessary to have a tlmgr-based installation of texlive and all the rpm packages that requires texlive (e.g., a2ps and R-core) still installable.

%prep

%build

%install
rm -rf $RPM_BUILD_ROOT

%clean
rm -rf $RPM_BUILD_ROOT

%files
%defattr(-,root,root,-)
%doc

%changelog

# vim: set nospell:

然后我用

rpmbuild -bb texlive-dummy-cfr.spec

这将创建一个包

rpmbuild/RPMS/x86_64/texlive-dummy-cfr-5.1-0.fc24.x86_64.rpm

然后我用它安装dnf

这很好用。此外,我已经成功安装了 Kile,因此虚拟包在某种程度上可以工作。

但是,尝试安装vim-latex失败:

Dependencies resolved.
============================================================================================================================================
 Package                         Arch                  Version                                                  Repository             Size
============================================================================================================================================
Installing:
 texlive-kpathsea                noarch                5:svn37193.0-24.fc24.1                                   fedora                153 k
 texlive-lib                     x86_64                5:2015-24.20150728_r37987.fc24                           fedora                429 k
 texlive-xdvi                    noarch                5:svn37078.22.87-24.fc24.1                               fedora                 72 k
 texlive-xdvi-bin                x86_64                5:svn37100.0-24.20150728_r37987.fc24.1                   fedora                317 k
 vim-latex                       noarch                1.8.23-16.20141116.812.gitd0f31c9.fc24                   fedora                216 k

Transaction Summary
============================================================================================================================================
Install  5 Packages

Total download size: 1.2 M
Installed size: 2.7 M
Is this ok [y/N]: N
Operation aborted.

显然我做错了什么。这并不是说它dnf根本无法识别所提供的假包:

for i in texlive-kpathsea texlive-xdvi texlive-xdvi-bin texlive-lib
> do
> dnf provides $i
> done

返回

Last metadata expiration check: 1:41:57 ago on Sat Oct 22 01:40:34 2016.
texlive-dummy-cfr-5.1-0.fc24.x86_64 : This is a fake TeXLive package
Repo        : @System

texlive-kpathsea-5:svn37193.0-24.fc24.1.noarch : Path searching library for TeX-related files
Repo        : fedora

Last metadata expiration check: 1:41:58 ago on Sat Oct 22 01:40:34 2016.
texlive-xdvi-5:svn37078.22.87-24.fc24.1.noarch : A DVI previewer for the X Window System
Repo        : fedora

Last metadata expiration check: 1:41:58 ago on Sat Oct 22 01:40:34 2016.
texlive-dummy-cfr-5.1-0.fc24.x86_64 : This is a fake TeXLive package
Repo        : @System

texlive-xdvi-bin-5:svn37100.0-24.20150728_r37987.fc24.1.x86_64 : Binaries for xdvi
Repo        : fedora

Last metadata expiration check: 1:41:59 ago on Sat Oct 22 01:40:34 2016.
texlive-dummy-cfr-5.1-0.fc24.x86_64 : This is a fake TeXLive package
Repo        : @System

texlive-lib-5:2015-24.20150728_r37987.fc24.i686 : Shared libraries for TeX-related files
Repo        : fedora

texlive-lib-5:2015-24.20150728_r37987.fc24.x86_64 : Shared libraries for TeX-related files
Repo        : fedora

我尝试添加

Provides: texlive-kpathsea-5 texlive-lib-5 texlive-xdvi-bin-5 texlive-dvi-5

但这仍然不能满足依赖关系。

请注意,搜索有关此问题的信息让我认为在 Fedora 论坛上提问并不明智。之前的讨论引发了这样的回应:Fedora 的打包人员努力打包了 TeX Live。如果缺少任何东西,它要么不是 TL 的一部分,要么不是免费的。如果您对软件包有疑问,您应该报告该问题。换句话说,您应该使用 RPM,而不是想要任何其他东西。不幸的是,那些似乎更同情该项目的人似乎没有对我有用的解决方案。(参考:https://ask.fedoraproject.org/en/question/51707/use-own-texlive-installation/) 这里的人们可能对 RPM 了解较少,但他们不太可能从原则上拒绝使用上游 TL 的整个想法!

我知道 CTAN 上有各种 Red Hat 虚拟软件包。但是,我不确定是否有适合此处的软件包。如果有的话,我假设它是https://www.ctan.org/tex-archive/support/texlive/texlive-dummy/EnterpriseLinux-7

相关内容