更换Yum仓库源
将本地源清除,并还原默认yum配置。
从网上下载第三源配置文件替换系统默认的yum配置文件即可。 这里目录是/etc/yum.repos.d(在该目录下载,或者下载完移动到该目录替换默认的yum配置文件)
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo 或者 curl -O http://mirrors.163.com/.help/CentOS7-Base-163.repo
最后清除下缓存即可。
安装扩展源epel
yum install -y epel-release
使用yum下载rpm包
下载未安装的rpm包:yum install 包名 --downloadonly
默认的下载路径在:/var/cache/yum/x86_64/7/ 目录下对应的仓库里头
下载已经安装的rpm包:yum reinstall 包名 --downloadonly 下载路径同上
如果想要指定下载路径可在后面加上: --downloaddir=路径
源码包约定存放目录:/usr/local/src/
首先下载源码包:wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.2.34.tar.gz
解压,切换到解压的文件目录,tar -zvxf httpd-2.2.34.tar.gz ,cd httpd-2.2.34
每个源码包都有说明文档即README,及安装文档INSTALL,不清楚的时候可以看看。
使用./configure --prefix=/usr/local/apache2 配置及设置安装路径
当方面缺少组件时,程序会停止并有信息提示,
或者使用echo $? 如果反馈0则现在政策反馈1则有问题
这边提示缺少gcc,用yum安装下,
安装完gcc,再进行./configure --prefix=/usr/local/src echo$?
然后make ,make完后最好在echo $?下,没问题就make install
然后就安装完了,要卸载的话,直接删除安装目录就行。
扩展
设置yum更新源的优先级
1、首先安装插件
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)
数字越大,优先级越
这里使用的是本地镜像源,如果优先级配合局域网源会更好
贴上几个修改的本地源配置文件,
网络源的配置文件优先级也要修改,数字大些,这里贴出最后一部分,
然后yum clean all 清除下缓存,验证安装源
制作RPM二进制包
以nginx为例进行制作二进制包
1、安装rpmbuild工具
2、创建相关目录
/usr/src/redhat/SOURCES #存放源代码、补丁等文件
/usr/src/redhat/SPECS #存放用于管理rpm制作进程的spec文件
/usr/src/redhat/BUILD #解压后的文件存放目录
/usr/src/redhat/RPMS #存放由rpmbuild制作好的二进制包
/usr/src/redhat/SRPMS #存放由rpmbuild制作好的源码包
3、把源码包放在SOURCE目录下
4、创建/编写nginx.spec文件
cd /us/src/redhat/SPECS 切换到SPEC目录下
vi nginx.spec 编写nginx.spec文件,内容如下
# spec file for nginx
# Build 2017-11-14
# By Test
#
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
%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 /usr/src/redhat/SOURCES/nginx-1.2.0.tar.gz
%build
cd nginx-1.2.0
./configure --prefix=/usr/local/nginx
make
%install
cd nginx-1.2.0
make install
%files
/usr/local/nginx
5、生成二进制格式的rpm包
cd /usr/src/redhat/SPEC
rpmbuild -bb nginx.spec
通过上面这条命令,会在/usr/src/redhat/RPMS/x86_64/下面生成nginx-1.2.0-1.el5.ngx.x86_64.rpm这个文件
(1) 文件头
一般的spec文件头包含以下几个域:
Summary:
用一句话概括该软件包尽量多的信息。
Name:
软件包的名字,最终RPM软件包是用该名字与版本号,释出号及体系号来命名软件包的。
Version:
软件版本号。仅当软件包比以前有较大改变时才增加版本号。
Release:
软件包释出号。一般我们对该软件包做了一些小的补丁的时候就应该把释出号加1。
Vendor:
软件开发者的名字。
Copyright:
软件包所采用的版权规则。具体有:GPL(自由软件),BSD,MIT,Public Domain(公共域),Distributable(贡献),commercial(商业),Share(共享)等,一般的开发都写GPL。
Source:
源程序软件包的名字。如 stardict-2.0.tar.gz。
%description:
软件包详细说明,可写在多个行上。
(2)%prep段
这个段是预处理段,通常用来执行一些解开源程序包的命令,为下一步的编译安装作准备。%prep和下面的%build,%install段一样,除了可以执行RPM所定义的宏命令(以%开头)以外,还可以执行SHELL命令,命令可以有很多行,如我们常写的tar解包命令。
(3)build段
本段是建立段,所要执行的命令为生成软件包服务,如make 命令。
(4)%install段
本段是安装段,其中的命令在安装软件包时将执行,如make install命令。
(5)%files段
本段是文件段,用于定义软件包所包含的文件,分为三类--说明文档(doc),配置文件(config)及执行程序,还可定义文件存取权限,拥有者及组别。