![我有一个 RPM,并且想要创建一个在线存储库](https://linux22.com/image/64226/%E6%88%91%E6%9C%89%E4%B8%80%E4%B8%AA%20RPM%EF%BC%8C%E5%B9%B6%E4%B8%94%E6%83%B3%E8%A6%81%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA%E5%9C%A8%E7%BA%BF%E5%AD%98%E5%82%A8%E5%BA%93.png)
我有一个 rpm,它是适用于 Fedora 的 Spotify 的特定版本,可在存储库中公开获取[1]。我该怎么做才能创建一个我的存储库(最好在 github 中),该存储库将包含此特定版本的 Spotify(此 rpm 包),这样,如果此存储库 [1] 获得更新版本,我将拥有一个我的旧版本的存储库。
谢谢
答案1
yum 存储库本质上是本地、ftp 或 http 的文件存储库。由于您有一个包含存储库数据的远程存储库,因此您可以使用yum utils
Fedora 上的包来克隆存储库。
首先安装同步和管理存储库元数据所需的包。
yum install yum-utils
接下来,将托管您的存储库的机器订阅到 Fedora Spotifyify 存储库。
yum-config-manager --add-repo=http://negativo17.org/repos/fedora-spotify.repo
现在创建一个用于托管存储库镜像的路径。我用/opt/repo
作为例子。
mkdir /opt/repo
cd /opt/repo
镜像 Spotify 的存储库(注意:如果您在主机上的 arch 与您的客户端不同,您可能需要修改此命令以下载特定的 arch 版本)
reposync -r epel-spotify -n
这将在 中创建 Spotify 存储库的镜像/opt/repo/epel-spotify
。然后,您可以安排每晚或每周执行 reposync 命令,它只会下载新的软件包。此外,您可以配置 Apache、lighttpd 或 nginx(或任何其他 http 或 ftp 服务器)来托管镜像位置。
最后,您可以将本地计算机配置为使用本地文件系统上的镜像,将本地文件系统配置为由网络上的其他客户端安装,或者客户端可以在设置类似于以下的 repo 配置文件后使用 ftp 或 http 检索包以下。
猫 /etc/yum.repos.d/spotify-local.repo
# file /etc/yum.repos.d/spotify-local.repo
[spotify-local]
name=My Personal Local Yum Repo
baseurl=file:///opt/repo/epel-spotify/
enabled=0
猫 /etc/yum.repos.d/spotify-http.repo
# http /etc/yum.repos.d/spotify-http.repo
[spotify-http]
name=My Http Spotify Yum Repo
baseurl=http://yumserver.example.com/epel-spotify
enabled=0
猫 /etc/yum.repos.d/spotify-ftp.repo
# ftp /etc/yum.repos.d/spotify-ftp.repo
[spotify-ftp]
name=My FTP Spotify Yum Repo
baseurl=ftp://yumserver.example.com/epel-spotify
enabled=0
一旦这些存储库配置之一安装在客户端上(并且 http 或 ftp 正常运行),您只需启用存储库并查找包即可。
yum --enablerepo=spotify-local search spotify
答案2
我认为最正式的方法是铜,其行为方式与 Ubuntu 的 PPA 类似。可以通过 repo 文件将 Repos 添加到 yum - 例如,这个铜提供了 Chromium 的更新版本,可以通过多种方式添加: YUM repo 文件(@ /etc/yum.repos.d/churchyard-chromium-russianfedora-fedora-21.repo
- 由页面上的 RPM 提供):
[churchyard-chromium-russianfedora]
name=Copr repo for chromium-russianfedora owned by churchyard
baseurl=https://copr-be.cloud.fedoraproject.org/results/churchyard/chromium-russianfedora/fedora-$releasever-$basearch/
skip_if_unavailable=True
gpgcheck=0
enabled=0
#priority=99
或者,使用 DNF(我认为默认的是 Fedora 22+):
dnf copr enable churchyard/chromium-russianfedora
但是,它可能仅限于拥有某些软件许可证和其他内容,并且您可能需要跳过一些步骤才能正确设置它。因此,另一种方法是执行链接站点似乎正在执行的操作,并创建一个指向具有适当 RPM 的服务器的存储库文件 - 它使用这个回购文件,并指出http://negativo17.org/repos/spotify/...用一个目录结构来容纳所有需要的 RPM。如果您确实创建了自己的公共存储库,则必须删除/更改 GPG 密钥内容,相应地更改软件包版本和更改日志,如果您也获得了项目作者的许可(在作者说他们在包的变更日志中有联系方式的页面)。
如果您只想拥有一个可以在需要时安装的版本,YUM 接受 URL,因此您应该能够在需要设置存储库的情况下安装它 - 例如,对于带有 CentOS 的笔记本电脑,我可以这样做要安装它的版本kmod-wl
需要:
sudo yum install https://dl.dropboxusercontent.com/s/yu8cvxaj9u269il/kmod-wl-6_30_223_248-2.el7.local.x86_64.rpm
然后 yum 下载并检查软件包,并在需要时安装它(DNF 可能会做同样的事情,没有线索)