当前位置: 首页 > news >正文

22次课(yum更换国内源、yum下载rpm包、源码包安装、把源码包打包成rpm包)

7.6 yum更换国内源

22次课(yum更换国内源、yum下载rpm包、源码包安装、把源码包打包成rpm包)

进入yum.repos.d

22次课(yum更换国内源、yum下载rpm包、源码包安装、把源码包打包成rpm包)

22次课(yum更换国内源、yum下载rpm包、源码包安装、把源码包打包成rpm包)

7.7 yum下载rpm包

安装扩展源epel
22次课(yum更换国内源、yum下载rpm包、源码包安装、把源码包打包成rpm包)

22次课(yum更换国内源、yum下载rpm包、源码包安装、把源码包打包成rpm包)

22次课(yum更换国内源、yum下载rpm包、源码包安装、把源码包打包成rpm包)

下载不安装但是他的安装包下载到那个目录下如下图

22次课(yum更换国内源、yum下载rpm包、源码包安装、把源码包打包成rpm包)

如果上图找不到路径可以查看,/updates/packages/

指定安装包路径

22次课(yum更换国内源、yum下载rpm包、源码包安装、把源码包打包成rpm包)

7.8/7.9 源码包安装

22次课(yum更换国内源、yum下载rpm包、源码包安装、把源码包打包成rpm包)

约定把源码包放到 cd /usr/local/src/这个路径

22次课(yum更换国内源、yum下载rpm包、源码包安装、把源码包打包成rpm包)

扩展

  1. 配置yum源优先级

1.安装 yum-priorities

yum install yum-priorities

2.priorities的配置文件是/etc/yum/pluginconf.d/priorities.conf,确认其是否存在。
其内容为:
[main]
enabled=1 # 0禁用 1启用

3.编辑 /etc/yum.repos.d/目录下的*.repo 文件来设置优先级。

参数为:

priority=N # N的值为1-99

推荐的设置为:
[base], [addons], [updates], [extras] … priority=1
[centosplus],[contrib] … priority=2
Third Party Repos such as rpmforge … priority=N (where N is > 10 and based on your preference)

数字越大,优先级越低

  1. 把源码包打包成rpm包

简单制作RPM二进包实例

有好多朋友问到怎么制作rpm包,可不可把其它服务器上编译好的软件目录复杂到其它服务器上直接应用等等。。。这里做个简单的介绍,高级复杂的不会。

此方法是通过编写spec文件,使用rpmbuild来完成一个rpm的打包。

以nginx为例进行介绍

制作平台:CentOS 5.x X86_64

四步走:

第一步:建立目录结构

mkdir /usr/src/RedHat/{SOURCES,SPECS,BUILD,RPMS,SRPMS} -p

相关目录介绍:

/usr/src/redhat/SOURCES #存放源代码、补丁等文件
/usr/src/redhat/SPECS #存放用于管理rpm制作进程的spec文件
/usr/src/redhat/BUILD #解压后的文件存放目录
/usr/src/redhat/RPMS #存放由rpmbuild制作好的二进制包
/usr/src/redhat/SRPMS #存放由rpmbuild制作好的源码包
第二步:把源码包放在SOURCES目录下
cd /usr/src/redhat/SOURCES
wget http://nginx.org/download/nginx-1.2.0.tar.gz

第三步:生成nginx.spec文件

cd /usr/src/redhat/SPECS
cat nginx.spec

spec file for nginx

Build 2012-07-17

By opsren

Summary: High performance web server
Name: Nginx
Version: 1.2
Release: 0.el5.ngx
License: 2-clause BSD-like license
Group: Applications/Server
Source: http://nginx.org/download/nginx-1.2.0.tar.gz
URL: http://nginx.org
Distribution: Centos/Redhat
Packager: qiuzhijun <250621008@qq.com>

%description
Nginx ("engine x") is a high performance HTTP and reverse proxy server, as well as a mail(IMAP/POP3/SMTP) proxy server.
%prep
tar zxf $RPM_SOURCE_DIR/nginx-1.2.0.tar.gz
%build
cd nginx-1.2.0
./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre --lock-path=/var/run/nginx.lock --pid-path=/var/run/nginx.pid
make
%install
cd nginx-1.2.0
make install
%preun
if [ -z "ps aux | grep nginx | grep -v grep" ];then
pkill nginx >/dev/null
exit 0
fi
%files
/usr/local/webserver/nginx

第四步:RPM包制作
首先系统要安装好必备的制作工具:gcc、rpmbuild等
yum -y install gcc rpm-build pcre-devel
cd /usr/src/redhat/SPECS/
rpmbuild -bb nginx.spec
通过上面这条命令,会在/usr/src/redhat/RPMS/x86_64/下面生成nginx-1.2.0-1.el5.ngx.x86_64.rpm这个文件

-bb 这个选项就是制作二进制包(build binary package only from <specfile>)

对spec文件内容进行简单说明:
spec文件是制作rpm包的核心!
以#开头的是注释信息;
Summary:对相关软件进行简单描述说明
Name:定义rpm包的名称
Version:定义软件的版本号
Release:发行版本
License:定义许可证
Group:说明软件属于哪种应用类型
Source:软件×××地址
URL:软件相关官方站点
Distribution: 发行版系列
Packager: 制作人的简单信息

%description:软件详细描述信息
%prep:软件编译之前的处理
%build:编译软件
%install:安装软件
%preun:定义卸载之前的动作
%files:指定要打包的软件包,这里是/usr/local/webserver/nginx

对于更详细的说明请参考官方资料:http://www.rpm.org/max-rpm/ch-rpm-inside.html

下面是apache的spec文件实例:

spec file for apache

Build 2012-07-17

By opsren

Summary: High stability web server
Name: Apache
Version: 2.2
Release: 22.el5
License: 2-clause BSD-like license
Group: Applications/Server
Source: http://apache.etoak.com/httpd/httpd-2.2.22.tar.gz
URL: http://apache.org
Distribution: Centos/Redhat
Packager: qiuzhijun <250621008@qq.com>

%description
Apache is a first web server
%prep
tar zxf $RPM_SOURCE_DIR/httpd-2.2.22.tar.gz
%build
cd httpd-2.2.22
./configure --prefix=/usr/local/webserver/apache --enable-so --enable-deflate --enable-headers --enable-mods-shared=all --enable-rewrite
make
%install
cd httpd-2.2.22
make install
%preun
if [ -z "ps aux | grep httpd | grep -v grep" ];then
pkill httpd >/dev/null
exit 0
fi
%files
/usr/local/webserver/apache
以后对于相同或类似平台可以到其它服务器上进行rpm安装部署。

另外还有一种rpm打包的方法:rpm_create
这是一种新的打rpm的工具,不用spec语言,只需要会简单的shell命令,即可完成打包操作,非常方便,结合了spec语言和checkinstall,相比spec方法要简单很多

转载于:https://blog.51cto.com/8043410/2059252

相关文章:

  • mybatis 延迟加载
  • Python基础学习四 列表、元组、字典、集合
  • Mysql添加更新删除数据-表
  • 如何在本地测试Fabric Code
  • 状态码 301 与 302的区别
  • RHEL6 搭建LVS/DR 负载均衡集群 案例
  • “-Xmx1024m -Xms1024m -Xmn512m -Xss256k”——Java运行参数
  • Linux权限详解
  • Tomcat7 Redis Session共享
  • 练习题
  • C#Vs关于连接数据库的语句
  • openssl windows 生成公钥与私钥
  • 使用xUnit为.net core程序进行单元测试 -- Assert
  • AI+社交,快手商业化落地之道
  • mysql数据表删除字段里重复的信息
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • css属性的继承、初识值、计算值、当前值、应用值
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • React as a UI Runtime(五、列表)
  • react-native 安卓真机环境搭建
  • vue-router的history模式发布配置
  • 关于Java中分层中遇到的一些问题
  • 后端_ThinkPHP5
  • 简单数学运算程序(不定期更新)
  • 使用 QuickBI 搭建酷炫可视化分析
  • 使用权重正则化较少模型过拟合
  • 微信小程序填坑清单
  • raise 与 raise ... from 的区别
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • #每天一道面试题# 什么是MySQL的回表查询
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (Forward) Music Player: From UI Proposal to Code
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (汇总)os模块以及shutil模块对文件的操作
  • (十六)一篇文章学会Java的常用API
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (转) Face-Resources
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • .“空心村”成因分析及解决对策122344
  • .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖
  • .net反混淆脱壳工具de4dot的使用
  • .net获取当前url各种属性(文件名、参数、域名 等)的方法
  • .NET企业级应用架构设计系列之开场白
  • .NET中的Event与Delegates,从Publisher到Subscriber的衔接!
  • /bin、/sbin、/usr/bin、/usr/sbin
  • ??在JSP中,java和JavaScript如何交互?
  • @manytomany 保存后数据被删除_[Windows] 数据恢复软件RStudio v8.14.179675 便携特别版...
  • [2016.7.test1] T2 偷天换日 [codevs 1163 访问艺术馆(类似)]
  • [20161214]如何确定dbid.txt
  • [Android] Implementation vs API dependency
  • [BZOJ1010] [HNOI2008] 玩具装箱toy (斜率优化)
  • [Bzoj4722]由乃(线段树好题)(倍增处理模数小快速幂)
  • [C#]使用PaddleInference图片旋转四种角度检测
  • [c++] 什么是平凡类型,标准布局类型,POD类型,聚合体