1、安装与卸载软件
在windows下安装一个软件很轻松,只要双击下载完成的.exe的文件,安装提示连续 “下一步” 即可。实际上,这个.exe文件是一个二进制的安装包。然而linux系统下安装一个软件似乎并不那么轻松了,因为我们不是在图形界面下,所以要学会如何在linux下安装一个软件。
Linux下的安装,有三种方法:
rpm工具,与Windows下的.exe文件类似
yum工具
源码包
2、rpm包介绍
RPM是 “Redhat Package Manager” 的缩写,根据名字也能猜到这是Redhat公司开发出来的。RPM 是以一种数据库记录的方式将所需要的套件安装到Linux 主机的一套管理程序。也就是说,linux 系统中存在着一个关于RPM的数据库,它记录了安装的包以及包与包之间依赖相关性。RPM包是预先在linux机器上编译好并打包好的文件,安装起来非常快捷。但是也有一些缺点,比如安装的环境必须与编译时的环境一致或者相当;包与包之间存在着相互依赖的情况;卸载包时需要先把依赖的包卸载掉,如果依赖的包是系统所必须的,那就不能卸载这个包,否则会造成系统崩溃。
首先,在下图所示位置,右击鼠标,选择“连接”,
连接完成之后,如下图所示。这样光盘就和Linux系统连接起来了。
接下来挂载光驱,见下图,
使用命令 df -h 查看,可以发现 /mnt/ 目录没有使用,可以将光盘挂载到 /mnt/ 目录下。挂载之后,会跳出提示”写保护,将以只读方式挂载“,这是因为光盘是只读的,不能编辑。
接下来进入 /mnt/ 目录,查看目录下内容,
这些文件和目录,就是光驱里面的内容,安装系统的时候,使用了这些文件。其中的 Packages ,输入命令 cd Packages ,回车,再输入命令 ls ,进入查看,见下图,
出现非常多的红色 rpm 文件。
每一个rpm包的名称都由 - 和 . 分成了若干部分。就拿 “yp-tools-2.14-3.el7.x86_64.rpm” 这个包来解释一下, “yp-tools” 为包名, “2.14” 则为版本信息, “3.el7” 为发布版本号, “x86_64” 为运行平台。其中运行平台常见的有i386, i586, i686, x86_64 ,需要注意的是cpu目前是分32位和64位的,i386,i586和i686都为32位平台,x86_64则代表为64位的平台。另外有些rpm包并没有写具体的平台而是noarch,这代表这个rpm包没有硬件平台限制。例如 “yum-utils-1.1.31-40.el7.noarch.rpm”。CentOS 7没有区分32位和64位平台,默认全都是64位。64位平台可以安装32位的包,32位平台就不能安装64位的包。
3、rpm工具用法
安装rpm包,具体见下图,
升级安装包,后面跟的是新的rpm包名,不是图中所示的原rpm包名。卸载安装包后,不显示其他内容就说明卸载成功了。
输入命令 rpm -qa ,回车,见下图,
显示的都是已经安装过的包,这些包都是可以直接卸载的,举个例子,现在将这个包 ppp-2.4.5-33.el7.x86_64 卸载掉,见下图,
可以看出,要想卸载 ppp 这个包,要先卸载 NetworkManager 这个包,要卸载 NetworkManager 这个包还要先卸载三个包 NetworkManager-tui 、NetworkManager-wifi 和 NetworkManager-team 。需要经过一系列的卸载,才能最终卸载 ppp 这个包,所以说 rpm 不太好用。
接下来查询安装包是否安装和安装包的详细信息,见下图,
接下来列出包安装的文件和查看文件是由哪个包安装的,见下图,
分享一个比较特殊的命令,见下图,
要注意命令使用的是反引号,输入单引号会提示错误,反引号在键盘的”Esc“键下面。这种情况是命令在 /usr/bin/ 下,忘记安装包的绝对路径的时候,可以使用 which + 命令 来查看rpm包。后面的 ls 使用不成功,是因为 which ls 有两行内容,读取不正确。
4、yum工具
前面说到rpm包卸载的时候,会提示先卸载依赖包。同样的,安装的时候也会提示有依赖。举个例子,见下图,
安装上图的rpm包,还需要先安装4个包,而这4个包里面说不定还要依赖其他的包。总之,使用rpm工具安装非常麻烦。
所以这边就出现了yum工具,可以自动解决依赖关系,安装包的时候,只需要跟包名即可,安装一下上面那个包 texlive-2012-38.20130427_r30134.el7.x86_64.rpm ,见下图,
整个过程的内容比较多,有223个依赖软件包,yum都可以自动安装好,无法想象用rpm安装是什么样子。安装到后面会跳出询问,输入 n ,回车,
输入命令 yum list ,回车,列出所有可用的rpm安装包,内容非常多,截取一部分,见下图,
左侧一列为包的名字和一些包的相关信息,中间一列为版本号和平台版本号,右侧一列为仓库名字。至于仓库名字是怎么来的?可以看下yum的配置文件,见下图,
cat命令输入完毕后,回车,
上面红色框框即为仓库,用来存放rpm包。
yum还可以搜索包 ,举例子搜索一下vim,见下图,
再来搜索一下network,见下图,
内容太多,只截取一部分,可以看出搜索的结果是不区分大小写的。但是结果也不精准,在包的名字不含network,只是说明里面含有network的情况也出现在搜索结果里。
接下来,使用更精准的搜索,见下图,
输入命令 yum list |grep 'vim' ,回车,搜索的结果里面,包的名字都是包含vim的,并且还显示出红色。这边注意 |grep 中的 | 是管道符,非数字或字母。
安装包的命令 yum install,后面加 -y 就是不再询问是否安装,这个命令前面使用过多次,这边就不再详细说明。这边的询问,在文章最开始有出现过,我们输入的是n,如果在安装命令上加 -y,到后面就不会再出现询问。
接着查看组安装包 grouplist,见下图,
出现中文是因为一开始安装系统的时候,选了中文,也可以改成英文,见下图,
举个例子,安装组 Virtualization Host ,输入命令 yum groupinstall 'Virtualization Host' ,回车,见下图,
内容非常多,就不一一截屏了,也不安装,所以在跳出询问的时候,输入 n ,回车。这边跳出询问是因为输入命令的时候,没有加上 -y 。
可以安装就可以卸载,举个例子,见下图,
使用rpm -e 卸载的时候,会一直跳出结果让我们先卸载依赖包,而使用 yum remove 命令就不会询问了,而是直接将依赖包一起卸载掉,如果命令里面不加 -y ,就会跳出是否卸载的询问,这边做实验,就不卸载,所有还是输入 n ,回车。
yum 也可以升级包,使用命令 yum update + 包名,即可升级指定包。如果后面不加包名的话,默认会把系统里的所有包,全部升级到最新版本,甚至包括系统、内核。这个操作,一般是在刚安装完系统的时候使用。如果系统已经运行了一些服务,安装一些环境,这时候就不要随意升级,否则可能会出问题。
在使用 yum 安装命令的时候,有时候我们会不知道命令在哪一个安装包里,可以通过 provides 搜索,下图中 /*/vim 是一个通配,* 表示路径,