我想使用正则表达式或 find 的输出列出要包含在我的包中的文件。
我怎样才能做到这一点?
TIA
我查找了一些信息,rpm模块只能用于搜索已安装的rpm包信息。我想使用python rpm模块搜索文件夹中的*.rpm文件并了解它们的信息,例如版本或版本。这可以使用rpm 模块?
我有一个用 python 编写的代理。我想为此创建一个 RPM。这个 rpm 只会将适当的文件放在它们的位置。然后一些python服务器会选择它们。现在我的问题是,每当我生成 rpm 时,我都会为每个 .py 文件获取 .pyo 和 .pyc 文件。我不需要那些 pyc 和 pyo 文件。是否有任何标志或我可以做的任何事情来删除它们?
谢谢你。
我正在使用 Python 的 bdist_rpm 将我的 Python 代码转换为要使用 yum 下载的 rpm 包。
我的setup.cfg看起来像这样:
[bdist_rpm]
requires=python-flask,python-gevent,python-sqlalchemy
Run Code Online (Sandbox Code Playgroud)
每当我尝试设置版本号时,例如python-flask-0.10.1, python-flask=0.10.1, yum 抱怨需要安装软件包但不安装它们本身,这让我觉得我没有正确指定所需的软件包。
那么在 bdist_rpm setup.cfg 中,如何设置我需要的包的版本号?
我正在开发一个 RPM 软件包,它将文件部署到 /opt 和 /etc。
在大多数情况下,它工作得很好,除了对于给定的环境,不允许写入 /etc ......
所以我用来Relocations将 /etc 文件部署在其他位置:
Relocations : /opt /etc
Run Code Online (Sandbox Code Playgroud)
通过指定--relocate选项,我可以将 /etc 文件部署到另一个位置:
rpm -ivh --relocate /etc=/my/path/to/etc mypackage.rpm
Run Code Online (Sandbox Code Playgroud)
现在的问题是,在安装后脚本中,有一些对 /etc 的硬编码引用在部署包时不会被替换:
echo `hostname --fqdn` > /etc/myapp/host.conf
Run Code Online (Sandbox Code Playgroud)
我希望有一种方法(宏,关键字,...)可以使用而不是硬编码路径,以便在 rpm 执行期间执行替换。
如果您有任何这方面的信息,我将非常感谢您的帮助。
谢谢预先
PS:请注意,这不是之前提出(和回答)的与根路径重定位相关的问题的重复,因为我们正在处理多个重定位路径,并且我们需要在 rpm 期间单独处理每个重定位路径小脚本
这个问题来自我对包管理器缺乏了解,我运行yum list并得到httpd-2.4.6-40.el7.centos.4.x86_64
Build date: Mon Jul 18 17:32:11 2016
Run Code Online (Sandbox Code Playgroud)
我做了yum update && yum install httpd,这会让我获得最新版本的 httpd 吗?
我在哪里可以在线检查以确认我的包/版本是最新的?
如何定期为我的 httpd 版本安装安全补丁?
更新
[centos ~]$ httpd -v
Server version: Apache/2.4.6 (CentOS)
Server built: Jul 18 2016 15:30:14
[centos ~]$ rpm -q --changelog httpd | more
* Mon Jul 18 2016 CentOS Sources <bugs@centos.org> - 2.4.6-40.el7.centos.4
- Remove index.html, add centos-noindex.tar.gz
- change vstring
- change symlink for poweredby.png
- update welcome.conf with proper aliases
Run Code Online (Sandbox Code Playgroud) 今天我搞砸了我的 CentOS 机器上的 Python 版本。甚至yum不能正常工作。我犯了一个错误,即删除了/usr/bin/python导致这种情况的默认值。我怎样才能找回一个清晰的 Python 环境?我认为完全删除它们并重新安装 Python 可能会起作用,但不知道该怎么做。希望有人能帮忙!
我正在尝试签署我使用 GPG 创建的 RPM 包而不输入密码,输入我可以签名的密码,但是不输入密码会打开消息框Please enter the passphrase to unlock the OpenPGP secret key,我需要在签署包时不需要密码,因为这将是一个以“静默模式”执行的脚本。我可能有错误的命令,但我很难找到解决方案。
这是我试图执行的命令,即使这样也要求输入密码:
gpg --batch --passphrase "78910" --clearsign test-1-0.x86_64.rpm
使用第二个命令,不需要密码:
echo "78910" | gpg --batch --passphrase-fd 0 --clearsign test-1-0.x86_64.rpm
但是,不会执行签名并返回如下所述的错误:
gpg: signing failed: Inappropriate ioctl for device gpg: /test-1-0.x86_64.rpm: clear-sign failed: Inappropriate ioctl for device
有了这第三条命令,报的错误就不一样了:
echo "78910" | gpg --batch --passphrase-fd 0 ~/.gnupg/trustdb.gpg --clearsign test-1-0.x86_64.rpm
错误信息:
gpg: Note: '--clearsign' is not considered an option gpg: WARNING: no command supplied. Trying to guess what you mean …
我正在开发一个将东西打包到 RPM 中的打包系统。我有一种情况,指定我想要一个目录及其下的每个文件和子目录包含在 RPM 中会非常方便。当然,这将在该%files部分中。
有没有办法做到这一点?我注意到有一种方法可以指定要包含的文件列表来自一个文件。我是否必须find在该%install部分中运行才能将该列表生成到文件中,然后%files稍后在该部分中使用该文件?
我想在 Centos 和 Redhat 机器上安装 scylladb。我在这里找到了相同的安装说明,但这涉及复制.repo文件,然后使用 yum 安装它,即它使用公共互联网)。
我想创建一个本地 yum 存储库,不想连接到公共互联网,而是只连接到我的公司网络。这将要求我自己有可用的 rpm,将其上传到我的内部系统中,然后使用 yum 指令,但我在网上的任何地方都找不到 scylladb 的 rpm。
有人可以帮助了解如何获得 rpm 或任何解决方法吗?