7.1 安装软件包的三种方法
在Linux下安装卸载软件包和 Windows下差不多
它有三种方法:
rpm工具
yum工具
源码包
rpm包:和Windows下的exe文件比较像,直接用rpm工具就可以装上,安装路径和文件名基本上都是固定好了的
yum工具:是另外一种工具去安装rpm包的 yum 属于是一个用python开发的一种工具,他操作的对象是rpm包,它比rpm工具有一个优势,支持自动安装依赖包。
总之Centos或者Redhat下这种包叫做rpm包(红帽子公司包管理系统)
源码包:需要通过一种编译器将源码包编译成可执行的文件
在上述三种方法中源码包最难,yum工具最简单
7.2 rpm包介绍
纲要:
rpm="Redhat Package Manager" 。是Redhat公司开发的。RPM是一种数据库记录的方式,将我们所需要的套件安装到Linux主机的一套管理程序。Linux系统中,存在着一个关于RPM的数据库,记录了安装的包以及包与包之间依赖相关性。RPM包是预先在Linux机器上编译好并打包好的文件,安装起来非常快捷。
缺点:安装的环境必须与编译时的环境一致或者相当,包与包之间存在着相互依赖的情况,卸载包时需要先把依赖的包卸载掉。如果依赖的包是系统所必须的,那就不能卸载这个包,否则会造成系统崩溃。
首先我们需要打开我们的虚拟机将光驱链接上,链接到Linux系统里面来将其挂载。
继续上述操作,因为虚拟机的光驱中还有系统安装盘镜像,把光盘挂在到/mnt 目录下,则会在/mnt/Packages 目录下看到很多 .rpm 的文件。
#mount /dev/cdrom /mnt/
mount: block device /dev/sr0 is write-protected, mounting read-only
#ls /mnt/Packages
389-ds-base-1.2.11.15-29.el6.i686.rpm
389-ds-base-libs-1.2.11.15-29.el6.i686.rpm
abrt-2.0.8-21.el6.centos.i686.rpm
autocorr-af-4.0.4.2-9.el6.noarch.rpm
autocorr-bg-4.0.4.2-9.el6.noarch.rpm
autocorr-ca-4.0.4.2-9.el6.noarch.rpm
python-volume_key-0.3.1-5.el6.i686.rpm
python-weberror-0.10.2-2.el6.noarch.rpm
python-weberror 0.10.2 2.e16. noarch
abrt 2.0.8 21.e16.centos i686
每一个rpm包的名称,都由 - 和 . 分成了若干部分。
版本号分三个等级,主版本-次版本-修正版本。
运行平台常见的有i386,i586,i686,x86_64,需要注意的是cpu目前是分32位和64位的。i386,i586,i686 是32位平台,x86_64代表64位平台。另外有些rpm包并没有写具体的平台,而是noarch,这代表rpm包没有硬件平台限制。
7.3 rpm工具用法
安装一个rpm包
#rpm -ivh [绝对路径,包信息包括名字,版本号,平台信息]
-i 安装的意思
-h 显示安装进度
-v 可视化
--force 强制安装,已安装的文件,会提示已安装,增加force选项则不提示,
--nodeps 当要安装的rpm包依赖其他包时,及时其他包没有安装,也要安装这个包
NOTE:如果两个包A和B存在依赖关系,安装A需要安装B,安装B的时候,又需要安装A,单独安装都不成功,解决方法,可以同时安装两个包,rpm -ivh A B;或者使用nodeps强制分开安装。卸载的时候,也需要同时卸载。尝试安装两个相互依赖的包 ypbind,yp-tools。
#rpm -ivh yp-tools................ ypbind...............
或者
#rpm -ivh --nodeps yp-tools....................
#rpm -ivh --nodeps ypbind...............
尽量少用 --nodeps , 避免引起不必要的麻烦
升级一个rpm包
#rpm -Uvh 完整filename
-U upgrade
NOTE:升级一个包的时候,包的主版本号要一致,否则会引起错误。
autocorr-af-4.0.4.2-9.el6.noarch.rpm
autocorr-bg-4.0.4.2-9.el6.noarch.rpm
autocorr-ca-4.0.4.2-9.el6.noarch.rpm
卸载一个rpm包
#rpm -e filename
卸载时后面跟的 filename 和安装时的是有区别的,安装时把一个存在的文件作为参数,而卸载时只需要包名即可。无需使用绝对路径。
强制安装一个包
#rpm -ivh --force yp-tools.........................
查询安装了哪些包
查询一个已安装rpm包的信息
列出rpm包安装的文件
查询一个包是否安装
#rpm -q 包名(不带有平台信息以及后缀名的)
查询当前系统所有安装过的rpm包
#rpm -qa
#rpm -qa |head 【只显示前10个已安装的rpm包】
得到一个已安装rpm包的相关信息
#rpm -qi 包名(不带有平台信息以及后缀名的,如 libjpeg-turbo-devel)
列出一个rpm包安装的文件
#rpm -ql 包名(不带有平台信息以及后缀名的)
上述信息,可以看出文件"/usr/lib/libjpeg.so"是通过libjpeg-turbo-devel这个rpm包得来的。反过来,如何通过一个文件去查找是由哪个rpm包得来的。
列出某一个文件属于哪个rpm包
#rpm -qf /usr/lib/libjpeg.
尝试查找ls、vim、vi是哪个包安装的
#which ls which vim which vi
#rpm -qf /usr/bin/ls
或者使用反引号,tab上面的符号,反引号的目的,是显示这个命令的结果
#rpm -qf which ls
使用单引号,返回的命令,如果只包含路径,是可以查询得到此命令是通过哪个包安装的,如 vim、vi,如果返回的命令包含其他说明信息,则无法使用,例如which ls
7.4 yum工具用法
纲要:
yum最大的的优势在于可以联网下载所需要的yum包,然后自动安装。这个过程中如果安装的rpm包有依赖关系,yum会依次安装所有rpm包。也可以指定rpm包的来源网站。
yum使用python写的工具,所以升级了python,yum就不能使用了,要注意。
首先列出所有可用的rpm包
#yum list
小提示:安装信息处,带有“@”符号的表示已经安装了,@ananconda,@updates,@bash等,未安装显示"base"、"extras",如果是已安装的rpm包需要升级,显示"updates"。"yum list" 会先列出已经安装的包(installed packages),然后再列出可以安装的包(Available Packages)。
搜索一个rpm包
#yum search [相关关键词]
#yum search vim
#yum list |grep 'vim' 【注意此处是单引号】【grep可以过滤】
安装一个rpm包
#yum install -y [包名,版本信息,建议使用tab]
#yum install -y vim-X11
可以试着安装搜索出来的rpm包
卸载一个rpm包
#yum remove -y [包名]
卸载yum包的时候,不能连其他重要的 rpm 包也一起卸载了,以免影响正常业务。尽量不加-y,因为各个包会有相互依赖关系,待系统提示后再决定是否卸载
升级一个 rpm 包
#yum update [rpm 包]
#yum update libselinux
搜索以及安装过的包
#yum list installed
搜索可安装的包
#yum list available
搜索特定的命令属于哪个包
#yum provides man
#yum provides tree
修改yum配置网址
#vim /etc/yum.repos.d/Centos-Base.repo
yum源的配置文件,可以再这个文件中修改网址,使用指定的源网址。不建议更改。
#yum grouplist 【可安装的,已安装的套件】
#LANG=en 【将语言更改为英语才可以安装】
#yum groupinstall “包名”
#yum groupremove "包名"
7.5 yum搭建本地仓库
本地yum源不作为重点,了解即可。
Linux系统不能联网,不能使用yum源。这时候需要自己利用Linux系统光盘制作一个 yum 源。
#rm /etc/yum.repos.d/CentOS-Base.repo 【删除后,不可以使用联网下载rpm包】
#mv /etc/yum.repos.d/CentOS-Base.repo /tmp/yum.repos.d/CentOS-Base.repo
保险起见,先备份一下
#vim /etc/yum.repos.d/CentOS-Media.repo
完成后
#yum list 【右侧的名字,变成Local_cdrom模块名】
#yum grouplinstall -y "xxxxxxx" 【此处使用的便是本地宝】
方法二:
#mkdir /dvd
#mount /dev/cdrom /dvd 【挂载光盘】【目录可自定义】
#cp -r /etc/yum.repos.d /etc/yum.repos.d.bak 【备份/etc/yum.repos.d,保险起见】
#rm -rf /etc/yum.repos.d/*
#vim /etc/yum.repos.d/dvd.repo 【创建新文件dvd.repo】
写入
[dvd]
name=install dvd
baseurl=file:///mnt
enabled=1 【是否启用该yum源,0禁用】
gpgcheck=0 【是否检查该yum源,0不检查,如果不是官网下载的镜像,建议检查,那就只去官网下载。】
#yum makecache 【刷新repos 生成缓存】
上述步骤完成就可以使用yum命令安装软件包。如果不想使用本地yum源,删除掉 /etc/yum.repos.d/dvd.repo 文件,然后恢复原来的配置文件 /etc/yum.repos.d
(视频中ppt小错误: gpcheck改为gpgcheck,yum cean 改为 yum clean)