RPM构建 – 源码编译

1. RPM构建 - 介绍
2. RPM构建 - SPEC文件参数解析
3. RPM构建 - 简单实例
4. RPM构建 – 源码编译

实例:下面源码,将iftop-0.17构建为rpm包。

  

1     构建目录结构

依照 rpmbuild 规范设定一个目录结构, 

[root@node0 rpmbuild]# ls
BUILD BUILDROOT  RPMS  SOURCES SPECS  SRPMS

 

2     准备要打包文件

将源代码(理想情况下应为一个 tar.gz压缩文件)复制到 SOURCES 目录中。如果有必要,重命名 tar压缩文件,以包含应用程序的版本号,便于与其他文件区分开。约定的命名格式为包-版本.tar.gz

 [root@node0SOURCES]# ls
iftop-0.17.tar.gz

 

3     Spec文件

在SPEC目录通过以下命令初始化spec文件:

[root@node0 SPECS]# rpmdev-newspec iftop.spec

根据具体情况进行修改,示例:请参照< RPM构建 - SPEC文件参数解析>

%define workdir /usr/bin
 
 
Name:       iftop
Version: 0.17
Release:    1%{?dist}
Summary:    displaybandwidth usage on an interface by host
 
Group:      Development/System
License:    GPL
URL:        www.123456789.com
Source0:    %{name}-%{version}.tar.gz
 
BuildRequires:  bluez-libslibpcap byacc libpcap-devel
Requires:   bluez-libslibpcap byacc
 
%description
display bandwidth usage on an interface by host
 
%prep
%setup -q
 
 
%build
./configure
make
 
%install
make install prefix=$RPM_BUILD_ROOT/usr
 
%clean
rm -rf $RPM_BUILD_ROOT/
 
%files
%defattr(0755,root,root)
/usr/sbin/iftop
%doc
%attr(0444,root,root)
/usr/man/man8/iftop.8.gz
 
%changelog

 

4     编译RPM

通过指定spec文件编译RPM包,命令如下:选项含义参加《RPM构建 - 介绍》 

[root@node0 SPECS]# rpmbuild -ba iftop.spec

 

5     测试RPM 

测试结果:

[root@node0 x86_64]# ls /usr/bin/pybin.py
ls: cannot access /usr/bin/pybin.py: No such fileor directory
[root@node0 x86_64]# rpm -ivhpybin-0.0.1-1.el7.centos.x86_64.rpm
Preparing...                         ################################# [100%]
Updating / installing...
  1:pybin-0.0.1-1.el7.centos        ################################# [100%]
[root@node0 x86_64]# rpm -q pybin-0.0.1
pybin-0.0.1-1.el7.centos.x86_64
[root@node0 x86_64]# ls /usr/bin/pybin.py -al
-rwxr-xr-x 1 root root 329 Nov 10 15:16/usr/bin/pybin.py
[root@node0 x86_64]# rpm -e pybin-0.0.1
[root@node0 x86_64]# ls /usr/bin/pybin.py
ls: cannot access /usr/bin/pybin.py: No such fileor directory
[root@node0 x86_64]# rpm -q pybin-0.0.1
package pybin-0.0.1 is not installed
[root@node0 x86_64]#

---轻轻地我走了,正如我轻轻地来---

R语言是一种广泛用于统计计算和图形生成的语言。当您从源代码编译R语言环境时,您可以更好地控制安装过程,并能优化其性能以适应您的硬件配置。 以下是Linux系统上通过源码编译安装R的简要步骤: ### 1. 准备工作 首先需要获取最新的稳定版R的源代码包。可以从CRAN官方网站下载压缩文件(.tar.gz)或者使用版本控制系统Git克隆官方仓库到本地计算机。 #### 下载源码(以wget为例) ```shell cd ~/Downloads/ # 替换URL为你想要的具体版本地址 wget https://cran.r-project.org/src/base/R-X/X.Y.Z.tar.gz ``` 如果选择git,则可以运行: ```shell git clone https://github.com/wch/r-source.git r_source_code_dir # 克隆整个repo历史记录 ``` ### 2. 安装依赖项 确保已经安装了构建所需的所有库和其他工具链组件。这通常包括但不限于`gcc`, `g++`,`make`,以及一些数学库如BLAS/LAPACK等。 对于基于Debian系统的用户来说,可以通过apt-get命令一次性完成大部分必需品的安装: ```shell sudo apt-get update && sudo apt-get install -y \ build-essential gfortran libreadline-dev \ libx11-dev libxt-dev texinfo zlib1g-dev \ libbz2-dev liblzma-dev xorg-dev \ libblas-dev liblapack-dev ``` CentOS/Fedora 用户则应该参考相应发行版文档添加额外软件源并安装类似名称的rpm包. ### 3. 解压&进入解压后的目录(如果是下载而非clone的话) 如果有下载`.tar.gz` 文件,需要用命令解开它: ```bash tar xvzf X.Y.Z.tar.gz # 根据实际下载的版本替换X Y Z数值 cd R-X.Y.Z # 进入解压出来的文件夹内开始准备下一步操作 ``` ### 4. 配置编译选项 执行configure脚本来检查主机环境、检测必要的外部库是否存在并且设置一些特定于平台的选择。这里你可以指定安装路径以及其他定制化需求。 ```shell ./configure --prefix=/usr/local # 指定安装位置,默认值就是这个所以这条其实是可选的 ``` > 注释:更多关于此阶段的帮助信息可通过`./configure –help`查看所有可用参数列表;此外,在某些特殊场景下可能还需要调整其他非默认的预设条件(例如是否启用共享内存支持等等),请参阅随附README文档获得更详细的指导方针。 ### 5. 编译 & 测试编译结果 一旦上述准备工作都完成了之后就可以直接启动正式的编译流程啦! ```shell make # 可能在较旧机器上耗时较长,视具体情况而定 ``` 为了保证最终产物的质量,建议在部署之前先跑一遍自带测试套件验证一下基本功能有没有问题: ```shell make check # 确保一切正常后再继续前进! ``` ### 6. 安装 最后一步就是要将刚才制作好的二进制文件拷贝至所选定的目标站点里去了——假设前面没有自定义过任何东西,默认情况下它们会被放置在 `/usr/local/bin/`. ```shell sudo make install # 成功后即可享受亲手打造的新鲜出炉R解释器咯~ ``` 以上就是在Linux环境下手动编译最新发布的R程序的基本教程概览啦。如果你遇到了麻烦或是不确定的地方,请随时查阅官网提供的完整手册页面https://cran.r-project.org/doc/manuals/index.html 获取最权威的技术解答哦~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YoungerChina

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值