一、导读
在使用Linux系统的过程中,软件包的安装是避免不了的,在Linux下,软件安装程序的种类很多,安装方法也格式各样.
论安装的舒适肯定比不上windows,windows安装软件基本就是用鼠标点击下一步,如果学习Linux的软件包安装,还像windows那样点击鼠标下一步安装,那就太对不起linux的shell了,Linux的shell比linux的图形化界面要强大太多了。
好了废话不多说了,安装软件包,首先要了解软件包的组成。
二、rpm包命名规则
软件包由二进制文件、库文件、配置文件、帮助文件、头文件等这重要的部分组成。
他们分别存放在系统的那些路径里面?
二进制文件:/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin
库文件:/lib, /usr/lib, /usr/local/lib
配置文件:/etc
man文档:/usr/share/man, /usr/local/share/man, {像README, INSTALL文件主 要存放在 /usr/share/doc}
头文件:/usr/include/
三、软件包的rpm安装
# rpm -ivh nginx-1.12.2-2.el7.x86_64.rpm
# rpm -ql nginx
# rpm -qc nginx
# rpm -qi nginx
# rpm -ivh httpd-2.4.6-88.el7.centos.x86_64.rpm
四、软件包的yum安装
yum(Yellowdog Update Manager),yum是RPM的前端工具,是基于RPM的一个管理工具,它能自动的解决安装rpm包产生的依赖关系。
yum的配置文件 /etc/yum.conf
yum repository仓库的配置文件/etc/yum.repos.d/*.repo
# ll /etc/yum.repos.d/
yum仓库的搭建是使用yum安装的前提,如何搭建一个好的yum仓库?
1) 首先要在yum仓库的文件(/etc/yum.repos.d/)中建立一个以.repo结尾的文件
2) [ ]方括号里面是写仓库的ID(repository_ID),名称可以随便取,但必须唯一
3) name是yum的名称也可以随便取,也必须唯一
4) baseurl指定你可以能通过本机、http或者ftp访问到那些rpm包的所在路径,该路径下必须有一个repodata的文件,比如/media下面有那个repodata的文件,那你的baseurl指向/media/,如果是/media/Server下面有那个repodata的文件,那你的baseurl指向 /media/Server/目录
5) enabled默认为1,1表示启用此仓库,0表示不启,
6) gpgcheck默认也是为1,1表示检查公钥,当检查公钥时要指定gpgkey的地址,0表示不检查,不检查公钥就不用指gpgkey的地址,如果是本地光盘搭建yum仓库,则可以设置gpgcheck=0
7) 当gpgcheck=1时,gpgkey指向包含RPM-GPG-KEY-CentOS-6这个文件的路径
8) cost是表示花费代价,cost默认是2000,越小表示优先级越高
用光盘搭建本地yum仓库
# mount /dev/cdrom /media
# vim /etc/yum.repos.d/iso.repo
##############################
[iso]
name=CentOS7.x
baseurl=file:///media/
gpgcheck=0
enable=1
################################
搭建外网的yum仓库(sohu的yum源)
$releasever:表示你的系统的版本,变量会自动的检测你的版本
$basearch:表示CPU的架构,是x86_64,还是i386系列
如果自己在网上下载了很多rpm软件包,也想搭建一个yum仓库,则使用createrepo
reaterepo会生成一个repodata的软件信息仓库文件,然后搭建该目录的yum仓库。
常用的几个rpm包下载网站:
http://rpm.phone.net
http://www.rpmfind.net
http://pkgs.org
用yum搭建本地yum仓库
假设你将自己下载的rpm包放在 /mnt/rpms 目录下
# createrepo -v /mnt/rpms
# vim /etc/yum.repos.d/localrepo.repo
#############################
[LocalRepo]
name=LocalRepositry
baseurl=file:///mnt/rpms
gpgcheck=0
#################################
# yum clean all
# yum repolist
用yum安装组包
# yum -y groupinstall "DesktopPlatform Development"
# yum -y groupinstall "Development tools"
# yum -y groupinstall "Server Platform Development"
五、软件装的tar源码包的编译安装
tar编译安装的三部曲:
1) configure 检测编译环境,设置预编译参数
2) make 进行编译
3) make install 编译安装
在安装三部曲之前,建议先看看解压之后目录里面的包含README, INSTALL文件,这里面的文件会告诉你详细安装步骤。
# yum -y groupinstall "Development tools"
# wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.2.25.tar.bz2
# tar jxf httpd-2.2.25.tar.bz
# cd httpd-2.2.25
# ./configure --prefix=/usr/local/apache --enable-so --enable-rewrite
# make
# make install
查看编译生成的文件
# ls /usr/local/apache
用tar包编译安装后,需要添加相关环境变量
添加PATH路径
# echo"PTAH=/usr/local/apache/bin:$PATH" >>/etc/profile.d/apache.sh
# source /etc/profile.d/apache.sh
添加库文件的搜索路径
# echo "/usr/local/apache/lib" >> /etc/ld.so.conf.d/apache.conf
# ldconfig
# ldconfig -v|grepapache
关联系统所识别的头文件
# ln-sv /usr/local/apache/include/ /usr/include/apache
# apachectl start
六、软件包安装的src.rpm源码包安装
# yum -y install rpm-build gcc make redhat-lsb-core libuuid-devel
# wget http://120.52.51.13/nginx.org/packages/mainline/centos/7/SRPMS/nginx-1.15.0-1.el7_4.ngx.src.rpm
# useradd builder
# cp nginx-1.15.0-1.el7_4.ngx.src.rpm /home/builer
# su - builder
$ rpm -ivh nginx-1.15.0-1.el7_4.ngx.src.rpm
$ ll -R rpmbuild/
$ cd rpmbuild/SPECS
$ rpmbuild -bb nginx.spec
$ cd /home/builder
$ ll -R
$ su - root
# rpm -ivh /home/builder/rpmbuild/RPMS/x86_64/nginx-1.15.0-1.el7_4.ngx.x86_64.rpm
# systemctl start nginx
# systemctl status nginx
七、参考
Linux根目录解析
https://www.cnblogs.com/puloieswind/p/5856658.html
Linux rpm包、rpm源码包及tar源码包的安装详解
https://blog.51cto.com/litaotao/1258450
How to setup Pagespeed module in Nginx using rpm or yum on CentOS 7
https://www.webfoobar.com/node/27