7.1 安装软件包的三种方法
- RPM,是Red-Hat Package Manager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux、S.u.S.E.以及Turbo Linux等Linux的分发版本都有采用,可以算是公认的行业标准了。
- yum(全称为 Yellow dog Updater, Modified),是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
- 源码包,是Linux中软件包的另一种形式,需要在计算机上进行编译以后才可以产生可以直接运行的二进制程序。源代码包里面包括了程序的程序代码,一般就是我们能认识的C语言文件,因此在安装源码包的时候通常会检索系统中是否正确安装gcc编译器,并且源代码安装的时间会比较长。
7.2-7.3 rpm
rpm命令是RPM软件包的管理工具。rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现,让Linux易于安装,升级,间接提升了Linux的适用度。
1、rpm包加载
1)在vmware中加载光盘
2)将/dev/cdrom挂载到/mnt/目录下,在/mnt/Packages/目录下可以看到光盘中的rpm包。
rpm包名字用“-”分隔开:
格式:name-version-release.arch.rmp
例如:zsh-5.0.2-28.el7.x86_64.rpm
- zsh:就是软件包的名字;
- 5.0.2:软件包的版本号,一般由三位组成,分别为主版本号-次版本号-修正号;
- 28.el7:发行号;
- arch(x86_64):支持的硬件平台,一般有:i386:支持几乎所有的x86的CPU平台;i586:如P-I MMX CPU及AMD的K5,K6系列等;i686:P-II以后的Intel系列;X86_64: 支持64位的cpu,如Intel core2以上及AMD的Athlon64以后的cpu;
- noarch:表示没有硬件平台的限制;
2、rpm命令
rpm命令相参数:
- -a:查询所有套件;
- -b<完成阶段><套件档>+或-t <完成阶段><套件档>+:设置包装套件的完成阶段,并指定套件档的文件名称;
- -c:只列出组态配置文件,本参数需配合"-l"参数使用;
- -d:只列出文本文件,本参数需配合"-l"参数使用;
- -e<套件档>或--erase<套件档>:删除指定的套件;
- -f<文件>+:查询拥有指定文件的套件;
- -h或--hash:套件安装时列出标记;
- -i:显示套件的相关信息;
- -i<套件档>或--install<套件档>:安装指定的套件档;
- -l:显示套件的文件列表;
- -p<套件档>+:查询指定的RPM套件档;
- -q:使用询问模式,当遇到任何问题时,rpm指令会先询问用户;
- -R:显示套件的关联性信息;
- -s:显示文件状态,本参数需配合"-l"参数使用;
- -U<套件档>或--upgrade<套件档>:升级指定的套件档;
- -v:显示指令执行过程;
- -vv:详细显示指令执行过程,便于排错。
3、rpm包的安装
#rpm -ivh rpm包文件
1)安装zsh-5.0.2-28.el7.x86_64.rpm,用“-ivh”。
2)更新指定rpm包,用“-Uvh”。
3)卸载“-e”(未显示任何信息表示卸载成功);显示“error: Failed dependencies”相关提示表示卸载失败,它可能有相关依赖的安装包。
4)查询所有已安装的rpm包,用“-qa”选项。
5)查看指定rpm包的详细信息。
6)显示安装rpm包相关的文件。
7)当我们不知道一个命令安装路径在哪,只知道命令,这时可以用 “-qf” `which + 命令名字 ` (反引号)来查询,此查询只支持没有alias过的命令,像是“ls”这样的命令是用alias做过别名的,是不可以用“-qf” `which + 命令名字 `来实现的。
8)rpm安装某些包时会检查依赖的其他文件,这时rpm就无法完成包的安装。
7.4 yum工具用法
上一节的最后,我们用rpm安装一些依赖别的包的包时就会无法完成安装,这时用yum来安装就不会有这种情况出现。
#yum install [-y] 包名。
1)用yum list 列出所有可安装的rpm包。
第一列:rpm包名,平台;第二列:版本号和发布平台版本;第三列:rpm包的仓库。
2)在yum配置文件下我们可以看到它的所有仓库,命令 ls /etc/yum.repos.d/
3)搜索一个包,yum search 包名。
可以看到关于vim所有的包。
4)当用yum search 来搜索一个字符串时,会把所有关于此字符串的信息都显示出来,用起来有诸多不便,这是我们可以用 yum list |grep ‘关键词’,来更精确的查找想要找的包。
grep ‘字符串’:从前面的结果中筛选出与后面关键词匹配的文件。
5)yum grouplist 列出所有可用的组,这其中就有我们在安装系统时的:Minimal Install、Compute Node、Infrastructure Server等组。
6)安装组套件用 yum groupinstall 组名,当组名有多个不连续的字符串时,要放到单引号(‘’)里去。
7)卸载包,yum remove 包名,此命令可以卸载包和它所有依赖包。
8)升级包。
yum -y update 升级所有包同时也升级软件和系统内核。此操作在生产环境中慎用!
9)查找安装某个命令需要用那个包。
yum provides “/*/vim”,当我们需要用某个命令时linux系统中没有此命令,再用yum安装它时又不知道用哪个包来安装时就可以用此命令来查询。
7.5 yum搭建本地仓库
再用yum安装软件包时,需要有yum源的,在联网的情况下它是从网络中下载,但是当我们无法联网时就需要本地仓库了。
我们用本地光盘来作yum源。
1)挂载本地光盘/dev/cdrom;备份之前的配置;删除之前的配置仓库;重新编辑yum本地仓库配置文件。
配置好之后,清除yum缓存文件
用yum list |less 查看配置好的yum本地仓库。包后面仓库为@开头的是已经安装的包。
7.6 yum更换国内源
Centos7 的yum仓库源默认的是国外的网站,我们在国内想要下载安装速度比较慢,这时就可以更换为国内的源了,
国内源还是比较多的,这里我们用“网易163”的源。
执行yum clean all 清除缓存。
7.7 yum下载rpm包
1)yum源有很多包没有,这时我们就可以安装yum扩展源。
yum install -y epel-release
2)yum下载rpm包
当我们下载一个rpm包而不想安装它时就可以用,yum install -y 包名 --downloadonly 来只下载它而不去安装。
下载的安装包可以在 ls /var/cache/yum/x86_64/7/下的仓库查看,本例子中zsh包在 base仓库中。
指定rpm包下载路径 yum install -y 包名 --downloadonly --downloaddir=路径。
重新安装rpm包 yum reinstall -y 包名 --downloadonly --downloaddir=路径。
7.8 源码包安装
约定:源码包放致路径为 /usr/local/src/
下载apache,在阿里云中我们找到要下载的是2.4.37版本。
下载后解压包:tar -zxvf httpd-2.4.37.tar.gz。
apache安装文档中给我们展示了怎样去安装。
安装apache2。
第一步:./configure --prefix=/usr/local/src/apche2
./configure --help 可以查看有哪些安装选项
echo $?命令:显示上一步执行的命令是否成功(上一步是指紧接着的命令),“0”成功执行,其它不是0的数字表示没有成功。
第二步:安装问题解决。
安装apache2时遇到了很多问题,主要有:
1)configure: error: APR not found.。 Please read the documentation。
2)configure: error: APR-util not found。 Please read the documentation。
3)configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/。
这里我参考了网上的一个解决办法,链接:http://blog.51cto.com/wnqcmq/1160274
第三步:重新安装apache2。
解决第二步问题后重新 ./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr/bin/apr-1-config --with-pcre=/usr/local/pcre/
然后进行make和make install。
编写本博客用到的参考链接:
https://baike.baidu.com/item/RPM/3794648
https://baike.baidu.com/item/yum
http://www.mamicode.com/info-detail-1852349.html
http://blog.51cto.com/wnqcmq/1160274
http://man.linuxde.net
http://www.runoob.com/
https://yq.aliyun.com/articles/484044?spm=5176.10695662.1996646101.searchclickresult.40d61293CdaYY3