我们公司需要的是一种Linux/C++版本管理工具.我们的产品包含多个库和配置文件.在这里,我将列出我们希望这样的系统具有的基本功能:
能够跟踪依赖关系,轻松增加依赖关系得到主要版本的库的主要版本.它应该在内部构建某种依赖图,以便知道谁受到更新的影响.
知道如何构建它所处理的产品.要么是特定的构建文件,要么更好 - 能够阅读和理解makefile.
使用SVN,以便从那里检查新版本并进行构建.
生成一些安装程序 - 以rpm或tar.gz格式.为此,它应该能够理解rpm spec文件格式.
目前我们正在研究这种已经很有用的工具.但是我相信我们的任务并不是独一无二的,应该有一些工具可以完成这项工作.
我在尝试为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) 我有两个问题,我想找到一个解决方案:
我重命名穆宁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安装完成后运行脚本.有办法解决这个问题吗?
我试图rpms在我的redhat linux系统上找到最近安装的一些,RPM是否提供了任何方法来执行此操作?
我试过了
#rpm -qa
Run Code Online (Sandbox Code Playgroud)
但它只提供已安装的rpms.有哪些选择?
我正在为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) 我对这个问题感到不好,但谷歌没有帮助.在codehaus消失之后,谁能告诉我maven-rpm-plugin的文档在哪里?
我想创建包含许多小文件的简单 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) 我用电子来创建跨平台应用程序.对于Windows和Mac,它可以通过电子工具完成,如autoUpdate,Squirrel等.
问题只出在Linux上.我为Ubuntu构建了一个.deb包.但我找不到任何"分步"指令或有关它的综合信息.
我不熟悉java,也没有为Linux创建应用程序的经验.
所以主要问题是:
所有信息都会有所帮助,即使它(信息)与电子应用程序无关.
谢谢!
我正在尝试为以下yum元数据文件找到值得信赖的真实点:
primary.xml.gzfilelists.xml.gzother.xml.gzrepomd.gzgroups.xml.gz我一直在寻找互联网,但我还没有找到明确的参考或指南.是否有具体的规范或RFC,或者这是否可以解释和实施?
我遇到过这些有用的链接:
但我还没有设法找到一个实际的规范.有人知道是否有一个,或在哪里可以找到更多细节?