Linux 安装*src.rpm的时候出现错误

本文介绍了解决在Linux中安装src.rpm包时遇到的警告信息,并提供了详细的步骤说明如何将src.rpm包编译成可直接使用的rpm包。
部署运行你感兴趣的模型镜像

Linux 安装*src.rpm的时候出现:

 

 

 

warning: user mandrake does not exist - using root 

warning: group mandrake does not exist - using root 

  

 

错误 。

症状:

[root@localhost System_Sources]# rpm -Uvh libmpfr-2.2.1-3mdv2007.1.src.rpm
warning: libmpfr-2.2.1-3mdv2007.1.src.rpm: V3 DSA signature: NOKEY, key ID 26752624
   1:libmpfr                warning: user mandrake does not exist - using root
warning: group mandrake does not exist - using root
warning: user mandrake does not exist - using root
warning: group mandrake does not exist - using root
########################################### [100%]

[root@localhost Desktop]# rpm -Uvh yum-3.2.20-4.fc10.src.rpm
warning: yum-3.2.20-4.fc10.src.rpm: V3 DSA signature: NOKEY, key ID 0b86274e
   1:yum                    warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
########################################### [100%]

 

 

 

 

 

 

 

   原因:

小结:src.rpm 是source包,要编译后才可以使用的;安装后是源码,rebuild后就会生成rpm包

方法:
1:
下载完成:
[root@localhost beinan]# ls unrar* unrar-3.5.2-1.2.fc4.src.rpm unrar.spec 
unrar-3.5.2-1.2.fc4.src.rpm unrar.spec
 
  安装源码包unrar-3.5.2-1.2.fc4.src.rpm;看一看安装在哪了呢?
[root@localhost beinan]# rpm -ivh unrar-3.5.2-1.2.fc4.src.rpm
 
 安装在这里:
[root@localhost beinan]# ls /usr/src/redhat/SOURCES/unrar 
unrar.1 unrarsrc-3.5.2.tar.gz 
 
 然后我们通过unrar.spec 来执行,其实他是一个写好的编译脚本;
[root@localhost beinan]#
 
#  rpmbuild --ba unrar.spec 
 
  编译完成:
 
[root@localhost beinan]# ls /usr/src/redhat/RPMS/i386/
unrar-3.5.2-1.i386.rpm unrar-debuginfo-3.5.2-1.i386.rpm
 
 是不是可以安装呢?
[root@localhost beinan]# rpm -ivh /usr/src/redhat/RPMS/i386/unrar-3.5.2-1.i386.rpm
Preparing... ########################################### [100%]
1:unrar ########################################### [100%]
 
 
 是不是可用?
 
[root@localhost beinan]# unrar x mydoc.rar 
 
清理垃圾文件:如果您经常用这种办法编译RPM 包,主要清理一下 /usr/src/redhat内各个目录的内容; 

2:
方法一: 
1.执行rpm -i your-package.src.rpm
2. cd /usr/src/redhat/SPECS
3. rpmbuild -bp your-package.specs 一个和你的软件包同名的specs文件
4. cd /usr/src/redhat/BUILD/your-package/ 一个和你的软件包同名的目录
5. ./configure 这一步和编译普通的源码软件一样,可以加上参数
6. make
7. make install 
 方法二: 
1.执行rpm -i you-package.src.rpm
2. cd /usr/src/redhat/SPECS
前两步和方法一相同
3. rpmbuild -bb your-package.specs 一个和你的软件包同名的specs文件
这时,在/usr/src/redhat/RPM/i386/ (根据具体包的不同,也可能是i686,noarch等等)
在这个目录下,有一个新的rpm包,这个是编译好的二进制文件。
执行rpm -i new-package.rpm即可安装完成。 
 
 

本文出自 “黄宝的博客” 博客,请务必保留此出处http://huangbao.blog.51cto.com/725279/152656

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

<think> 首先,用户的问题是:“我想查找src.rpm包编译安装的方法 请问src.rpm包的编译安装方法”。这涉及到Linux系统中处理.src.rpm包的编译和安装方法。 我引用了四个站内引用:[^1], [^2], [^3], [^4]。这些引用提供了相关信息: - [^1] 描述了安装.src.rpm包的基本步骤:使用`rpm -i`安装源包,然后使用`rpmbuild -bb`编译成二进制包,最后安装二进制包。 - [^2] 解释了下载.src.rpm包、修改源代码、重新编译和安装的过程。 - [^3] 提到编译内核源码包,但似乎链接不完整。 - [^4] 列出了一些依赖包,可能用于编译ceph,但不是直接相关。 用户的需求是“src.rpm包的编译安装方法”,所以我需要结构化地回答这个问题,确保覆盖核心步骤。 关键步骤基于引用: 1. **安装源包**:使用`rpm -i <package>.src.rpm`安装源包到指定目录,通常在`/usr/src/redhat`或类似路径。 2. **编译源包**:进入`SPECS`目录,使用`rpmbuild -bb <spec-file>.spec`编译成二进制RPM包。 3. **安装二进制包**:编译后,在`RPMS`目录下会生成二进制RPM包,使用`rpm -ivh <binary-package>.rpm`安装。 系统级指令要求: - 所有行内数学表达式使用`$...$`,但在这个上下文中,可能没有数学表达式,所以可以忽略。 - 独立公式使用`$$...$$`,但同样不适用。 - LaTeX语法正确:确保代码块正确显示。 - 使用中文回答。 - 生成相关问题。 - 回答中引用的段落末尾自然地添加引用标识,例如[^1]。 用户可见层: - 回答结构清晰,逐步解决问题。 - 保证回答真实可靠:基于提供的引用和标准知识。 结构化回答: 1. **介绍src.rpm**:简要解释什么是.src.rpm包(源码RPM包)。 2. **编译安装步骤**: - 安装源包。 - 编译源包。 - 安装二进制包。 3. **示例代码**:提供命令行示例,使用代码块。 4. **注意事项**:依赖包的安装、目录路径等。 5. **相关问题**:生成相关问题。 生成相关问题: - 如系统指令所示,生成3-4个相关问题,例如: - 如何修改.src.rpm包的源代码? - 编译.src.rpm包时遇到错误怎么办? - .src.rpm包和二进制RPM包有什么区别? 引用标识: - 在回答中,当引用具体段落时,在末尾添加[^1], [^2]等。例如,基于[^1]描述步骤。 完整回答大纲: 1. **引言**:解释.src.rpm包。 2. **步骤**: - 步骤1:安装源包(参考[^1])。 - 步骤2:编译源包(参考[^1], [^2])。 - 步骤3:安装二进制包(参考[^1])。 - 注意事项:如安装依赖(参考[^4])。 3. **示例**:使用代码块展示。 4. **总结**。 5. **相关问题**。 确保语言中文。 </think> 以下是关于 Linux 系统中 `.src.rpm` 源码包的编译和安装方法的详细解答。`.src.rpm` 包是源代码 RPM 包,包含软件的源码文件、构建脚本(`.spec`文件)等。编译安装它需要先解压源码、编译成二进制 RPM 包,再安装。参考您提供的引用信息,我将步骤结构化,确保清晰可靠。核心步骤基于标准 Linux 工具(如 `rpm` 和 `rpmbuild`),并参考了引用中的方法[^1][^2]。 ### 步骤 1: 安装源码包到本地目录 首先,将 `.src.rpm` 包安装到系统指定的源码目录(如 `/usr/src/redhat` 或 `/root/rpmbuild`)。这会解压源码并生成 `.spec` 构建脚本文件。 - 命令示例: ```bash rpm -i your-package.src.rpm # 安装源码包,your-package 替换为实际包名[^1] ``` - **说明**: - 安装后,源码文件通常位于 `/usr/src/redhat/SOURCES/`(RHEL/CentOS 旧版)或 `/root/rpmbuild/SOURCES/`(较新系统)。 - `.spec` 构建脚本位于 `/usr/src/redhat/SPECS/` 或 `/root/rpmbuild/SPECS/`[^1][^2]. - 如果目录不存在,可使用 `rpmdev-setuptree` 命令创建(需先安装 `rpmdevtools` 包)。 ### 步骤 2: 编译源码生成二进制 RPM 包 进入 `.spec` 文件所在目录,使用 `rpmbuild` 工具编译源码。这会生成二进制 RPM 包(`.rpm`文件),存储在 `RPMS` 子目录。 - 命令示例: ```bash cd /usr/src/redhat/SPECS/ # 切换到 SPECS 目录 rpmbuild -bb your-package.spec # 编译源码,生成二进制包[^1] ``` - **说明**: - `-bb` 选项表示“只构建二进制包”(不包含源码包)。如果需要重新生成源码包,可用 `-ba` 选项[^1][^2]. - 编译过程会自动处理依赖,但可能需先安装开发工具链(如 `gcc`, `make`)和依赖库。参考引用[^4],常见依赖包括 `gcc-c++`, `openssl-devel` 等。可使用以下命令安装基础依赖: ```bash yum groupinstall "Development Tools" # CentOS/RHEL yum install openssl-devel zlib-devel # 安装常见依赖[^4] ``` - 编译错误时,检查 `.spec` 文件或日志(通常在 `/usr/src/redhat/BUILD/`),可能需要修改源码或添加缺失依赖[^2]。 ### 步骤 3: 安装生成的二进制 RPM 包 编译成功后,在 `RPMS` 目录下找到生成的二进制包(如 `.i386.rpm` 或 `.x86_64.rpm`),使用 `rpm` 命令安装。 - 命令示例: ```bash cd /usr/src/redhat/RPMS/x86_64/ # 切换到二进制包目录(架构可能不同) rpm -ivh your-package-version.arch.rpm # 安装二进制包[^1] ``` - **说明**: - `-ivh` 选项表示“安装并显示进度”(`i`=install, `v`=verbose, `h`=hash)。 - 安装后,软件即可使用。验证命令:`rpm -q your-package`。 ### 完整示例:以 `ipvsadm` 包为例 假设您有 `ipvsadm-1.24-6.src.rpm` 包,步骤如下: ```bash # 步骤1: 安装源码 rpm -i ipvsadm-1.24-6.src.rpm # 步骤2: 编译 cd /usr/src/redhat/SPECS/ rpmbuild -bb ipvsadm.spec # 生成二进制包在 RPMS 目录 # 步骤3: 安装 cd /usr/src/redhat/RPMS/i386/ rpm -ivh ipvsadm-1.24-6.i386.rpm ``` ### 注意事项 1. **依赖管理**:编译前需安装所有依赖。引用[^4] 提到,编译复杂包(如 ceph)时需额外依赖(如 `gcc-c++`, `openssl-devel`)。使用 `yum-builddep <spec-file>.spec` 自动安装依赖。 2. **目录路径**:较新系统(如 CentOS 7+)使用 `/root/rpmbuild/` 代替 `/usr/src/redhat/`。可通过 `rpm --eval %{_topdir}` 查看当前路径。 3. **修改源码**:如需自定义源码,参考引用[^2],在 `SOURCES` 目录修改文件后重新编译。 4. **错误处理**:编译失败时,检查日志(`/usr/src/redhat/BUILD/`)或使用 `rpmbuild --rebuild` 直接重编译[^2]。 通过以上步骤,您可以高效地编译和安装任何 `.src.rpm` 包。如果需要进一步优化或问题排查,请参考生成的以下相关问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值