标签: rpm

如何重新安装rpm包?

我已经从.rpm文件安装了一个包,它存储在/ opt中.

经过一些配置后,我发现需要重新安装软件.所以我删除了该目录并尝试重新安装该文件rpm -i XXX.rpm.但它告诉我package xxx is already installed.

我该如何重新安装?

rpm package reinstall

38
推荐指数
3
解决办法
7万
查看次数

从rpm包中提取spec文件

有没有办法从rpm包中提取spec文件(我只有RPM文件)

不是

   rpm --scripts -qp my-great-app-1.1.2.rpm 
Run Code Online (Sandbox Code Playgroud)

(这种语法只能从rpm获取spec脚本中的脚本)

linux rpm rpmbuild rpm-spec

37
推荐指数
6
解决办法
6万
查看次数

如何为每次调用设置rpmbuild的构建区域

我修改自动生成,并想告诉rpmbuild调用它,当使用特定生成区域.

这类似于现有问题,但更具体.

  • 我不想以root用户身份运行任何构建命令; 目的只是拥有一个RPM,而不是在系统中安装任何东西.

  • 我不想要求用户更改他们的dotfiles(例如$HOME/.rpmrc); 构建应该是自包含的,不会影响用户的现有设置.

  • 我不想将位置硬编码到foo.spec文件中; 如果用户想要在不同的位置构建,那么该文件应该可以使用.

  • --buildroot选项是不是我所需要; 为make构建过程的一部分设置伪根文件系统,但我需要为整个 RPM构建过程指定"构建区域" .

我正在寻找的是一个假设的--build-area FOODIR选项,可以给rpmbuild命令或等效的环境变量.因此,它应该仅影响该命令的单个调用,并使其对其构建区域使用指定的用户可写位置.

我已经看到了对_topdir宏的引用,这似乎就是我所说的,但它似乎不是每次调用都可配置的.

如果rpmbuild可以在需要时在该位置设置自己的环境,那将是理想的,但我不介意为每个构建设置目录,因为这可以作为构建的一部分自动化.目标是使用户可写位置仅在构建运行期间存在,然后在生成RPM文件后通过删除整个位置进行清理.

build-process packaging rpm rpmbuild

36
推荐指数
1
解决办法
1万
查看次数

如何在Ubuntu上安装.rpm?

我是一个ubuntu用户,但我需要安装一个打印机驱动程序,这是一个RPM(*.rpm)文件(抱歉,这是Linux制造商网站上唯一可用的驱动程序).

是否可以在ubuntu上安装RPM文件?

提前致谢.

ubuntu install rpm

33
推荐指数
1
解决办法
8万
查看次数

如何在MacOS系统上构建RPM?

我正在运行Mac OS X 10.6.6.我有一些我想要构建的仅限数据的RPM.

直到最近,我已经在运行CentOS的VM上完成了大部分开发工作,但是我已经能够将这些任务逐步转移到Mac上.我一直在使用Fink访问我需要的Open/Free工具,但我还没准备好去Fink unstable,RPM5软件包已经存在了一段时间.

我还尝试从源代码构建RPM实用程序,到目前为止运气不佳.

是否还有其他人在Mac上本地构建RPM?如果是这样,怎么样?

macos rpm fink

32
推荐指数
2
解决办法
3万
查看次数

实际上是$ RPM_BUILD_ROOT?

在构建RPM包的过程中,我必须指定BuildRoot,稍后将在%install中使用,它将调用$ RPM_BUILD_ROOT.我一直认为$ RPM_BUILD_ROOT是RPM执行打包的虚假安装.然后,在安装时使用RPM包,它将安装到实际位置.例如:

$RPM_BUILD_ROOT/usr/bin
Run Code Online (Sandbox Code Playgroud)

我认为$ RPM_BUILD_ROOT仅用于打包过程,并且在某些方面RPM可以区分$ RPM_BUILD_ROOT和实际安装位​​置,当用户执行"rpm -ivh package.rpm"时将是/ usr/bin.

但是最近在阅读一些文档时,建议$ RPM_BUILD_ROOT是将要安装的实际位置,并且$ RPM_BUILD_ROOT由用户使用环境变量$ RPM_BUILD_ROOT的设置指定,以便让用户在他们的愿望中安装包位置.否则,$ RPM_BUILD_ROOT将为null,它将安装到默认位置.在上面的例子中,它是/ usr/bin.因此,$ RPM_BUILD_ROOT不仅适用于打包或"虚假安装"过程,而且是用户定义安装位置的一种方式,类似于Windows中的选择文件夹位置.

我不知道我的想法是否正确.有人可以验证吗?提前致谢.

linux packaging rpm

31
推荐指数
2
解决办法
3万
查看次数

如何忽略rpm安装中的冲突

我在一个文件夹中有一堆rpm文件.我正在尝试使用以下命令安装它们: rpm -ivh *.rpm因此rpm可以处理正确的安装顺序.

在其中一些rpms中,我在我的系统中安装了更新的版本,所以我得到了例子:

package info-5.0-1 (which is newer than info-4.13a-2) is already installed

/opt/freeware/man/man1/infokey.1 from install of info-4.13a-2 conflicts with file from package info-5.0-1

有没有办法忽略旧的.rpm文件并使用已安装的新版本解决依赖关系?我想到了--force选项.但是--force如何解决冲突?用旧版本覆盖它们还是忽略它们离开新版本?

欢迎任何想法.

unix linux aix rpm

31
推荐指数
3
解决办法
10万
查看次数

RPM spec文件 - 是否可以动态填充spec文件变量

我有一个spec文件.我需要定义一个spec变量,它从系统上的一行文件中获取其值.

例如

%define path `cat /home/user/path_file`
Run Code Online (Sandbox Code Playgroud)

并且在path_file中是一行

/var/www/html/hosts
Run Code Online (Sandbox Code Playgroud)

这部分有效.我说从RPM BUILD输出开始有时值${path}实际上是我的命令cat /home/user/path_file,有时值是path_file(/ var/www/html/hosts)中的行应该是什么?

rpm rpmbuild rpm-spec

30
推荐指数
1
解决办法
2万
查看次数

RPM升级卸载RPM

我正在升级我们的项目RPM.问题是当我从projectname-1.0-0升级到projectname-1.0-1时,它首先安装新项目并卸载旧项目,从整体上看,它完全删除了我的项目.我在升级时使用了"vv"选项,输出显示安装完成后卸载.

有人请帮忙解决这个问题.有什么我应该在RPM规范或rpmbuild选项中专门更改?

specifications upgrade rpm rpmbuild

28
推荐指数
3
解决办法
2万
查看次数

如何让rpmbuild下载特定.spec的所有源代码?

我正在.spec通过URL 向现有rpm 文件添加一些源,但尚未下载它们.有没有办法rpmbuild下载源而不是手动执行?

rpm rpmbuild rpm-spec

26
推荐指数
3
解决办法
1万
查看次数