发布
社区首页 >问答首页 >从源代码安装软件,怎么说百胜不从包里安装?

从源代码安装软件,怎么说百胜不从包里安装?
EN

Server Fault用户
提问于 2019-06-28 07:50:07
回答 4查看 1.7K关注 0票数 14

在CentOS 7上,我已经安装了由源代码编译的foobar 2。

How我可以让yum知道这个安装,这样它就不会安装foobar version 1作为依赖项?

安装foobar

代码语言:javascript
代码运行次数:0
复制
$ git clone https://example.com/foobar.git
[...]
$ cd foobar
$ make && sudo make install
[...]
$ foobar --version
foobar v2

安装需要foobar

的包

代码语言:javascript
代码运行次数:0
复制
$ sudo yum install baz
[...]
---> Package baz.x86_64 0:3.14.15-9 will be installed
--> Processing Dependency: foobar >= 1 for package: baz-3.14.15-9.x86_64
[...]
Dependencies Resolved

==============================================================
 Package           Arch      Version      Repository   Size
==============================================================
Installing:                  
 baz               x86_64    3.14.15-9    example      1.1 M
Installing for dependencies: 
 foobar            x86_64    1.0.0-0.el7  example      4.5 M

我希望yum知道foobar 2已经安装了,而且由于baz需要foobar >= 1或简单的foobar,所以foobar-1.0.0-0.el7.x86_64.rpm <#>should没有被安装。

EN

回答 4

Server Fault用户

回答已采纳

发布于 2019-06-28 09:45:02

“我安装了foobar版本2,从源代码编译而来”

在向您的系统中添加自定义软件并在RPM中添加<#>package时,要付出额外的努力。关于如何做到这一点,请参见,2010-01-12构建和分发包、IBM

然后安装相应的RPM,这样它就可以并且将很好地处理包管理器的冲突和依赖关系处理、升级、降级和删除过程以及安全报告。

票数 27
EN

Server Fault用户

发布于 2019-06-28 18:04:13

另一个选项(虽然肯定不是最好的答案):创建一个带有所讨论的名称的虚拟rpm文件。

您将需要安装rpmbuild和一个虚拟的tarball。

代码语言:javascript
代码运行次数:0
复制
mkdir ~/rpmbuild/{RPMS,SOURCES}
touch empty.txt
tar -zcf ~/rpmbuild/SOURCES/example.tar.gz empty.txt

编写虚拟规范文件。这个在费多拉29号对我有用。在CentOS 7上也应该是好的。

代码语言:javascript
代码运行次数:0
复制
Name:           example
Version:        0.0.0
Release:        1%{?dist}
Summary:        Dummy package

Group:          Dummy
License:        CC-BY-SA 3.0
URL:            http://example.com
Source0:    example.tar.gz
BuildArch:  noarch

#BuildRequires:
#Requires:

%description
Dummy for example

%prep
:

%build
:

%install
:

%files
%doc

%changelog

根据需要调整包名和版本号,然后构建包。

代码语言:javascript
代码运行次数:0
复制
rpmbuild -ba example.spec

输出的“二进制”rpm文件为~/rpmbuild/RPMS/noarch/example-0.0.0-1.fc29.x86_64.rpm

票数 10
EN

Server Fault用户

发布于 2019-06-28 08:39:49

这不是rpm的工作方式。

rpm使用db存储系统上安装了哪些rpm。如果您手动安装一些文件,rpm将不知道。

解决这个问题的最好方法是安装带有rpm的foobar 2。其他解决方案只能是解决办法,从长远来看是行不通的。

票数 6
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/973208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档