在windows系统下安装软件很简单,只要双击后缀为exe的文件,然后根据提示连续点击“下一步”按钮即可。然而在linux系统下安装软件就没那么容易了,因为我们不是在图形界面下。
RPM是Red Hat Package Manager的缩写,由Red Hat 公司开发。RPM 是以一种数据库记录的方式来将你所需要的套件安装到你的Linux 主机的一套管理程序。也就是说,你的linux系统中存在着一个关于RPM的数据库,它记录了安装的包以及包与包之间依赖相关性。RPM包是预先在linux机器上编译好并打包好的文件,安装起来非常快捷。但是也有一些缺点,比如安装的环境必须与编译时的环境一致或者相当;包与包之间存在着相互依赖的情况;卸载包时需要先把依赖的包卸载掉,如果依赖的包是系统所必须的,那就不能卸载这个包,否则会造成系统崩溃。
rpm工具有点像Windows下的exe安装
yum工具比rpm工具好用多了,当然前提是你使用的linux系统是支持yum的。yum最大的优势在于可以联网去下载所需要的rpm包,然后自动安装,在这个工程中如果要安装的rpm包有依赖关系,yum会帮你解决掉这些依赖关系依次安装所有rpm包。
yum工具就像苹果手机上的应用商店一样,可以傻瓜式的一键帮你安装所需的软件。
这个源码包就完全不同于Windows了,所谓的源码包,就是源代码,你可以看到这个程序当时作者使用例如C语言、C++、等各种语言开发的源码文件。需要我们自己把源代码编译成二进制的可执行文件。如果你读得懂这些源代码,那么你就可以去修改这些源代码自定义功能,然后再去编译成你想要的。使用源码包的好处除了可以自定义修改源代码外还可以定制相关的功能,因为源码包在编译的时候是可以附加额外的选项的。缺点是安装和卸载比较麻烦。
我们需要知道rpm包是长啥样的,其实在centos系统安装盘下就有很多的软件就是rpm包形式的。我们在虚拟机里把光盘挂载进来看看吧!
把光盘添加好后,我们还需要挂载它,如下图:
使用mount /dev/cdroom /mnt 将光盘挂载到mnt/ 目录下,这里会提示以只读方式挂载,因为光盘本身就不支持写数据的。
挂载好以后我们就可以在/mnt/Packages/ 目录下看到所有的rpm包了
rpm包文件名详解:
示例:abrt-desktop-2.1.11-50.el7.centos.x86_64.rpm
abrt-desktop:包名 2.1.11:版本号 50.el7: 发布版本号,7代表是centos7
x86_64 :平台 64位,centos7默认都是64位
.rpm: 后缀名
64位平台可以安装32位的包,跟Windows一样
知识点:反引号可以引用命令的结果 ,使用反引号which 命令
查看,只能查只有一行显示路径的命令,例如cd,ls则不可以,因为它做了别名,which出来就有两行了。
示例操作:
是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。
基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
优势点:支持自动安装依赖包
用法:
yum list 有三列,其中第一列是包名,第二列是版本号,第三列代表的是仓库名字。
使用cat /etc/yum.repos.d/CentOS-Base.repo
查看仓库详细配置信息
上面看到[]里的base,就是仓库名
把包放到一个容器里,这个容器就是仓库,通过仓库下面的网络地址可以找到它,每个仓库下有很多包。
这种搜索不太严谨,只要含有vim字符的都会查找出来,而且不区分大小写。我们可以使用另一种方法:
在没联网的情况下yum是使用不了的,这时候可以搭建一个本地仓库,方便安装包和它所依赖的包。
1.首先要将系统安装光盘或者镜像挂载到/mnt/目录下,使系统可以访问
2.挂载好以后我们对yum仓库的配置文件进行备份一下
3.删除/etc/yum.repos.d/下所有文件
4.在/etc/yum.repos.d/目录下新建一个仓库配置文件dvd.repo并添加加以下五行:
[dvd] //仓库名字
name=dvd //自定义一个描述字符串,意义不大
baseurl=file:///mnt //路径地址
enable=1 //是否可用,1可用,0不可用
gpcheck=0 //是否检测,0不检测,1检测
5.清除yum缓存:yum clean all
6.查看yum软件包列表:yum list | more
右边带@的表示已经安装的,下边仓库名为dvd表示可安装的包
7.此时就可使用yum进行安装我们自己搭建的dvd仓库的软件了
系统自带的yum源不太好使,因为一般默认都是国外的源,没有国内的访问速度快。所以我们就可以自己手动更换到国内的源。
1.将我们之前做的本地源删掉,然后恢复原来的备份。
[root@localhost yum.repos.d]# rm -rf dvd.repo
[root@localhost etc]# cp yum.repos.d.bak/* yum.repos.d/
cp: 略过目录"yum.repos.d.bak/yum.repos.d"
[root@localhost etc]# cd yum.repos.d
[root@localhost yum.repos.d]# ls
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo
[root@localhost yum.repos.d]#
2.删掉默认的Base源
[root@localhost yum.repos.d]# rm -rf CentOS-Base.repo
3.使用wget或者curl下载国内的163源,至此就已经更换完成了。
[root@localhost yum.repos.d]# curl -O http://mirrors.163.com/.help/CentOS7-Base-163.repo
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1572 100 1572 0 0 45246 0 --:--:-- --:--:-- --:--:-- 46235
[root@localhost yum.repos.d]# ls
CentOS7-Base-163.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo
[root@localhost yum.repos.d]#
工作中有时候我们只想下载一个软件包,并不想安装它。所以我们就需要这样做了,
yum install -y epel-release
另一种用法:yum install 包名 --downloadonly
这种用法的话将会下载到一个固定的目录下:
ls /var/cache/yum/x86_64/7/仓库名/packages
可以看到我们下载的zsh是base仓库的,所以在base/packages/目录下
可以设置使yum保留已经下载的rpm包,供以后升级或重新安装时使用。如果不设置的话,每次yum安装好软件后是不会保留该rpm包的。
修改/etc/yum.conf即可:
[main]
cachedir=/var/cache/yum/$basearch/$releasever //放置下载的包的地方,可以修改为自己想放置的位置。
keepcache=1 //为1时表示保存已经下载的rpm包。0则不保存。
debuglevel=2
先达成一个约定,以后所有的源码包我们都统一放在/usr/local/src/目录下,方便你,方便我,方便大家。
1.下载源码包:wget http://mirrors.cnnic.cn/apache/apr/apr-1.6.3.tar.gz
2,解压源码包后进入目录下查看:tar -zxvf apr-1.6.3.tar.gz
3.所有的源码包都会有些说明文档
README 说明书:
INSTALL 安装文档:
3.开始安装并指定安装路径: ./configure –prefix=/usr/local/apache
[root@localhost apr-1.6.3]# ./configure -prefix=/usr/local/apache
这一步其实已经是在预编译了,时间会比较长,如果出现错误则会停止。这里我们可以使用echo $?来检查上一条命令是否执行成功:
可以看出输出结果为0,表示上一条命令执行成功,如果为1的话就是执行失败,这时就需要查看报错信息去处理问题了。
4.编译:make
正式编译时间也会很久,同样的,执行完make后我们使用echo $? 进行检查,可以看到结果也是0,很完美的结果。
5.正式安装:make install
这样就完成了apr包的编译安装了。可以查看到它已经成功的安装到/usr/local/apache/目录下:
rpm安装软件包时,可以加--nodeps选项,表示当要安装的RPM包依赖于其他包时,即使其他包没有安装,也要安装这个包。如下图:
yum autoremove vim : 卸载时连依赖包一起卸载
yum makecache --把服务器的包信息下载到本地电脑缓存起来
yum check-update --检查是否有可用的更新rpm软件包
yum repolist --查看yum仓库标识,如图:
扩展: