它似乎应该可用,但我似乎无法找到它.
就像是:
pkg = rpm.Package(name="some package")
dependencies = pkg.dependencies()
Run Code Online (Sandbox Code Playgroud)
有没有这样的东西,比我现在做的更干净?
目前,我正在使用子进程包装rpm命令并手动解析输出:
cmd = "rpm -qRp {file} | sort | uniq".format(file=filename)
cmd_output = subprocess.check_output(cmd, shell=True)
# ... long parse of cmd_output
Run Code Online (Sandbox Code Playgroud) 场景:有3个rpms A,B和C.
当我们安装rpm A时,我们也正在安装rpm B和C.所以第一次安装工作正常.当我们在升级过程中安装更新版本的rpm A时,我们要删除之前rpm安装的rpm B和C一个.
要求:在安装新的rpm A之前,检查是否安装了B和C. 如果是,则卸载B和C.因此新的rpm A可以安装新的rpm B和C.
我们尝试了什么:
A的spec文件%pre section:
%pre
如果rpm -qa | grep B; 然后
rpm -e B;
fi
如果rpm -qa | grep C; 然后
rpm -e C;
科幻
我们正在使用傀儡.当我们运行puppet agent -t --debug时,在安装rpm A之前它会被挂在下面的线上!
调试:执行'/ usr/bin/yum -d 0 -e 0 -y install A'
知道为什么我们无法卸载这些rpm吗?
编辑:让我解释一下正确的场景:
它是遗留代码,我们正在修复升级期间发生的问题!
在木偶中我们已经提到如果我们安装rpm A,确保存在rpm B和C.
步骤:
1.我们将rpm A,B和C上传到我们的puppet服务器.
2. puppet agent –t在我们的木偶客户端中运行.
3.它安装所有的rpms
4. Rpm A的.spec文件:在%pre他们正在执行rm –rf /m/n/current 的%install部分中,他们正在执行的部分中,mkdir /m/n并在此文件夹中提取rpm A的内容. …
我用subprocess.getoutput("rpm -qa").split("\n"),它不是很好.
你能帮我找一个模块吗?
ps:rpmfile模块只能读取.rpm文件
机器1
#uname -r
Machine 1:3.2.45-0.6.wd.561.41.269.metal1.x86_64
#rpmbuild --version
RPM version 4.8.0
Run Code Online (Sandbox Code Playgroud)
在尝试rpmbuild时,我在以下版本中遇到了非法char''':版本:25.'4283295'.mybranch
我写的脚本中有错误,该脚本在数字后面加上了引号。
在机器2上
# uname -r
2.6.16.33-xenU
# rpmbuild --version
RPM version 4.4.2
Run Code Online (Sandbox Code Playgroud)
在这里rpmbuild似乎可以使用名称中的单引号:myapp-1.4.25.'4283295'.mybranch.x86_64.rpm
我收集到在较早的情况下版本中不允许使用单引号。我应始终避免使用哪些字符集?
rpmbuild版本是否存在差异?
我在rpm名称/版本/发行版中找不到允许的字符。任何指针将不胜感激。
我想在CentOS 7上安装一个需要几个库的应用程序:
libcryptopp.so.6
libdns_sd.so.1
libstdc++.so.6
libstdc++.so.6
Run Code Online (Sandbox Code Playgroud)
我在哪里可以获得这些库?有没有包含它们的yum回购?他们是标准的吗?如果是这样,我安装什么软件包来获取这些库?
有人请指教.
有人可以解释noarch rpm和rpm之间的区别。难道这两个都是家属。我有Jenkins rpm,也有一些noarch rpm。我可以用noarch rpm做些什么。谢谢你的帮助
这个问题以前有人问过,但我的有点不同。
我想使用 sudo yum 安装一堆 rpm 包。我想安装它们的机器上没有互联网连接。这些包也不存在于网络中的任何机器上。
有没有一种方法可以在没有互联网连接的情况下安装它们,并且它们不在网络中的任何机器上的任何地方(因此不能使用 --downloadonly 选项)?
我的程序基本上是一个基于C的MySQL服务器,它需要gcc,mysql-server,mysql-devel才能成功运行.
现在我必须将程序打包到RPM包中,它应该能够自动安装依赖项,以便RPM包可以安装在干净的RHEL机器上,程序可以在安装后立即运行.
问题是如果我在SPEC文件%pre部分写下面的脚本,它会在"事务"期间卡住.
sudo yum groupinstall "Development Tools" -y
sudo yum install mysql-server mysql-client -y
Run Code Online (Sandbox Code Playgroud)
看来你不能在SPEC文件中使用另一个rpm安装工具.
我该怎么做呢?
我收到了这个错误,在网上搜索但找不到任何东西.
请帮忙,新手
错误:失败的依赖项:rpm -ivh perl-5.8.8-43.el5_11.i386.rpm
[root@workstation ~]# rpm -ivh perl-5.8.8-43.el5_11.i386.rpm
error: Failed dependencies:
libc.so.6 is needed by perl-5.8.8-43.el5_11.i386
libc.so.6(GLIBC_2.0) is needed by perl-5.8.8-43.el5_11.i386
libc.so.6(GLIBC_2.1) is needed by perl-5.8.8-43.el5_11.i386
libc.so.6(GLIBC_2.1.2) is needed by perl-5.8.8-43.el5_11.i386
libc.so.6(GLIBC_2.1.3) is needed by perl-5.8.8-43.el5_11.i386
libc.so.6(GLIBC_2.2) is needed by perl-5.8.8-43.el5_11.i386
libc.so.6(GLIBC_2.2.4) is needed by perl-5.8.8-43.el5_11.i386
libc.so.6(GLIBC_2.3) is needed by perl-5.8.8-43.el5_11.i386
libc.so.6(GLIBC_2.3.2) is needed by perl-5.8.8-43.el5_11.i386
libc.so.6(GLIBC_2.3.4) is needed by perl-5.8.8-43.el5_11.i386
libc.so.6(GLIBC_2.4) is needed by perl-5.8.8-43.el5_11.i386
libcrypt.so.1 is needed by perl-5.8.8-43.el5_11.i386
libcrypt.so.1(GLIBC_2.0) is needed by perl-5.8.8-43.el5_11.i386
libdb-4.3.so is …Run Code Online (Sandbox Code Playgroud) 问题陈述
rpm -qi ${pkgName}.cat -n 在 (1) 的输出中会告诉我病房描述部分的哪一行开始。
例如:- 第 15 行,以防 rpm 中的 atom IDE 编辑器。
我知道我可以使用此行号作为
rpm -qi atom | awk -v n=${lineNum} 'NR>=n'. 这lineNum将是 15。
这是低效的,我只想使用该rpm -qi命令一次,然后实现提取关于病房的描述部分。有没有人有办法做到这一点?
额外要求的输入
[anand@ldnpsr2937 ~]$rpm -qi atom
Name. : atom
Version : 1.42.0
Release : 0.1
Architecture: x86_64
Install Date: Sun 12 Jan 2020 10:23:12 AM
Group : Unspecified
Size : 590646918
License : MIT
Signature : (none)
Source RPM : atom-1.42.0-0.1.src.rpm
Build Date …Run Code Online (Sandbox Code Playgroud) 在我新创建的 EC2 实例 (Ubuntu 14.04) 上安装 CodeDeploy 代理时,我rpm在执行安装或重新安装 AWS CodeDeploy 代理指南中的步骤时遇到了错误。
命令:
wget https://aws-codedeploy-us-west-2.s3.amazonaws.com/latest/install
chmod +x ./install
sudo ./install auto
Run Code Online (Sandbox Code Playgroud)
错误:
sudo: unable to resolve host ip-10-0-88-56
I, [2016-08-12T01:22:00.600236 #30533] INFO -- : Starting Ruby version check.
I, [2016-08-12T01:22:00.600470 #30533] INFO -- : Starting update check.
I, [2016-08-12T01:22:00.600565 #30533] INFO -- : Checking AWS_REGION environment variable for region information...
I, [2016-08-12T01:22:00.600645 #30533] INFO -- : Checking EC2 metadata service for region information...
I, [2016-08-12T01:22:00.627237 #30533] INFO …Run Code Online (Sandbox Code Playgroud)