标签: rpm

适用于Linux的发布管理系统

我们公司需要的是一种Linux/C++版本管理工具.我们的产品包含多个库和配置文件.在这里,我将列出我们希望这样的系统具有的基本功能:

  • 能够跟踪依赖关系,轻松增加依赖关系得到主要版本的库的主要版本.它应该在内部构建某种依赖图,以便知道谁受到更新的影响.

  • 知道如何构建它所处理的产品.要么是特定的构建文件,要么更好 - 能够阅读和理解makefile.

  • 使用SVN,以便从那里检查新版本并进行构建.

  • 生成一些安装程序 - 以rpm或tar.gz格式.为此,它应该能够理解rpm spec文件格式.

目前我们正在研究这种已经很有用的工具.但是我相信我们的任务并不是独一无二的,应该有一些工具可以完成这项工作.

c++ linux rpm release-management

7
推荐指数
1
解决办法
1260
查看次数

Python bdist_rpm -ba:未知选项错误:命令'rpm'失败,退出状态为1

我在尝试为Linux发行版构建Python RPM包时遇到以下错误.我在这个过程中看到警告,但我不认为那些与"-ba:未知错误"有关,任何想法如何让它运行?

错误:

bdist_rpm -ba: unknown option error: command 'rpm' failed with exit status 1
Run Code Online (Sandbox Code Playgroud)

我正在运行以下python setup.py脚本:

setup(
    name='Tester',
    version='0.1.0',
    author='My Name',
    author_email='emailaddress@gmail.com',
    packages=['tester'],
    license='LICENSE.txt',
    description='IMAP Email Reader.',
    long_description=open('README.txt').read(),
    install_requires=[
        "Django >= 1.1.1",
        "caldav == 0.1.4",
    ],
)
Run Code Online (Sandbox Code Playgroud)

当我运行python setup.py bdist_rpm时,它会创建一个Tester.spec文件~/Tester/build/bdist.linux-x86_64/rpm/SPECS directory:

%define name Tester
%define version 0.1.0
%define unmangled_version 0.1.0
%define release 1

Summary: Email Reader.
Name: %{name}
Version: %{version}
Release: %{release}
Source0: %{name}-%{unmangled_version}.tar.gz
License: LICENSE.txt
Group: Development/Libraries
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
Prefix: %{_prefix}
BuildArch: noarch
Vendor: …
Run Code Online (Sandbox Code Playgroud)

python rpm

7
推荐指数
1
解决办法
2351
查看次数

重命名munin包时问题与postun脚本有关

我有两个问题,我想找到一个解决方案:

我重命名穆宁2.0封装,为RPM的SPEC文件我已经过时了原来的穆宁包.

当更换现有的1.x穆宁包作为穆宁节点的postun小脚本的一部分它移除穆宁用户.

postuninstall scriptlet (using /bin/sh):
if [ $1 -eq 0 ]; then
    /usr/sbin/userdel munin || logger -t munin/rpm "User \"munin\" could not be deleted."
#       /usr/sbin/groupdel munin || logger -t munin/rpm "Group \"munin\" could not be deleted."
fi
Run Code Online (Sandbox Code Playgroud)

当我替换现有的munin 2.0软件包时,postun会删除plugins目录的内容.

postuninstall scriptlet (using /bin/sh):
if [ "$1" = "0" ]; then
   [ -d /etc/munin/plugins ] && \
find /etc/munin/plugins/ -maxdepth 1 -type l -print0 | \
   xargs -0 rm || :
fi
Run Code Online (Sandbox Code Playgroud)

由于yum安装了新软件包,然后运行旧软件包的帖子,$1 = 0在这两种情况下,它将在我的rpms安装完成后运行脚本.有办法解决这个问题吗?

rpm yum rpmbuild munin

7
推荐指数
1
解决办法
168
查看次数

如何查看最近安装的rpms?

我试图rpms在我的redhat linux系统上找到最近安装的一些,RPM是否提供了任何方法来执行此操作?

我试过了

#rpm -qa 
Run Code Online (Sandbox Code Playgroud)

但它只提供已安装的rpms.有哪些选择?

linux redhat centos rpm

7
推荐指数
1
解决办法
4282
查看次数

当它存在于rpm文件中时,"丢失"用于rpm安装的lib

我正在为centos生成rpm文件,但是当我尝试在干净的机器上安装它时,它失败了:

 --> Running transaction check
 ---> Package grass.x86_64 0:6.4.4-1.el6 will be installed
 --> Processing Dependency: libgrass_rli.so()(64bit) for package: grass-6.4.4-1.el6.x86_64
 --> Finished Dependency Resolution Error: Package: grass-6.4.4-1.el6.x86_64 (/grass-6.4.4-1.el6.x86_64)
            Requires: libgrass_rli.so()(64bit)
Run Code Online (Sandbox Code Playgroud)

除了rpm包含libgrass_rli.so之外没问题.

 [vagrant@localhost ~]$ rpm -qilp /vagrant_rpms/grass-6.4.4-1.el6.x86_64.rpm | grep _rli
 /usr/local/lib/libgrass_rli.6.4.4.so 
 /usr/local/lib/libgrass_rli.so
Run Code Online (Sandbox Code Playgroud)

我已经尝试了各种提供:spec文件中的行无济于事,任何人都可以看到错误吗?

编辑

[vagrant@localhost ~]$ rpm -qp --provides /vagrant_rpms/grass-6.4.4-1.el6.x86_64.rpm                                                                            
libgrass_I.6.4.4.so()(64bit)                                                    
libgrass_Iortho.6.4.4.so()(64bit)                                               
libgrass_arraystats.6.4.4.so()(64bit)                                           
libgrass_bitmap.6.4.4.so()(64bit)                                               
libgrass_btree.6.4.4.so()(64bit)                                                
libgrass_cdhc.6.4.4.so()(64bit)                                                 
libgrass_cluster.6.4.4.so()(64bit)                                              
libgrass_datetime.6.4.4.so()(64bit)                                             
libgrass_dbmibase.6.4.4.so()(64bit)                                             
libgrass_dbmiclient.6.4.4.so()(64bit)                                           
libgrass_dbmidriver.6.4.4.so()(64bit)                                           
libgrass_dbstubs.6.4.4.so()(64bit)                                              
libgrass_dgl.6.4.4.so()(64bit)                                                  
libgrass_dig2.6.4.4.so()(64bit)                                                 
libgrass_display.6.4.4.so()(64bit)                                              
libgrass_driver.6.4.4.so()(64bit)                                               
libgrass_dspf.6.4.4.so()(64bit)
libgrass_edit.6.4.4.so()(64bit)
libgrass_form.6.4.4.so()(64bit)
libgrass_g3d.6.4.4.so()(64bit)
libgrass_gis.6.4.4.so()(64bit)
libgrass_gmath.6.4.4.so()(64bit)
libgrass_gpde.6.4.4.so()(64bit)
libgrass_gproj.6.4.4.so()(64bit)
libgrass_interpdata.6.4.4.so()(64bit)
libgrass_interpfl.6.4.4.so()(64bit)
libgrass_lidar.6.4.4.so()(64bit)
libgrass_linkm.6.4.4.so()(64bit)
libgrass_lrs.6.4.4.so()(64bit)
libgrass_neta.6.4.4.so()(64bit)
libgrass_nviz.6.4.4.so()(64bit)
libgrass_ogsf.6.4.4.so()(64bit) …
Run Code Online (Sandbox Code Playgroud)

rpm rpmbuild grass

7
推荐指数
2
解决办法
3667
查看次数

在codehaus消失之后,maven-rpm-plugin文档在哪里

我对这个问题感到不好,但谷歌没有帮助.在codehaus消失之后,谁能告诉我maven-rpm-plugin的文档在哪里?

java rpm maven-plugin maven

7
推荐指数
1
解决办法
1247
查看次数

RPM build 没有那个文件或目录

我想创建包含许多小文件的简单 RPM 文件。

[root@laptop rpm]# tree
.
??? BUILD
??? BUILDROOT
??? RPMS
??? SOURCES
?   ??? some_agent-1.0.tar.gz
??? SPECS
?   ??? kernel.spec
?   ??? kernel.spec~
??? SRPMS

6 directories, 3 files
[root@laptop rpm]# 
Run Code Online (Sandbox Code Playgroud)

我有这个规范文件:

Summary: some_agent
Name: some_agent
Version: 1.0
Release: 1
License: Apache
Group: application
Source0: %{name}-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
%description
Test 

%prep
%setup -q

%build


%install
rm -rf $RPM_BUILD_ROOT
make root=$RPM_BUILD_ROOT install

%clean
rm -rf $RPM_BUILD_ROOT

%files
%defattr(-,root,root,-)
%doc
agent/*
Run Code Online (Sandbox Code Playgroud)

但是当我尝试构建 RPM 包时,我收到此错误:

[root@laptop ~]$ rpmbuild -bb -v …
Run Code Online (Sandbox Code Playgroud)

linux rpm rpmbuild rpm-spec

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

如何显示rpm内部内容的文件权限

我想看看在安装rpm之后rpm中的文件将"拥有"的权限.但无需安装rpm.

rpm

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

如何在Linux上实现自动更新电子应用程序

我用电子来创建跨平台应用程序.对于Windows和Mac,它可以通过电子工具完成,如autoUpdate,Squirrel等.

问题只出在Linux上.我为Ubuntu构建了一个.deb包.但我找不到任何"分步"指令或有关它的综合信息.

我不熟悉java,也没有为Linux创建应用程序的经验.

所以主要问题是:

  1. 什么是使用发行版包管理器的标准自动更新流程?谁应该下载并安装更新并重新启动应用程序.
  2. 有什么方法可以解决这个问题.创建自定义更新的最佳做法是什么?
  3. .deb,.rpm包之间有什么区别?Ubuntu和Fedora之间有什么区别?

所有信息都会有所帮助,即使它(信息)与电子应用程序无关.

谢谢!

linux rpm auto-update deb electron

7
推荐指数
2
解决办法
4349
查看次数

是否有YUM元数据的规范?

我正在尝试为以下yum元数据文件找到值得信赖的真实点:

  • primary.xml.gz
  • filelists.xml.gz
  • other.xml.gz
  • repomd.gz
  • groups.xml.gz

我一直在寻找互联网,但我还没有找到明确的参考或指南.是否有具体的规范或RFC,或者这是否可以解释和实施?

我遇到过这些有用的链接:

但我还没有设法找到一个实际的规范.有人知道是否有一个,或在哪里可以找到更多细节?

redhat rpm yum

7
推荐指数
0
解决办法
115
查看次数