day21:软件包安装的三种方式及本地yum搭建

1.linux下软件包的安装方式有三种,如下:

rpm工具:安装快捷,但是包与包存在依赖关系严重,安装环境与编译必须一致:

yum工具:支持自动依赖安装,方便快捷:

源码包:源代码,通过编译器,编译成可执行的二进制文件:

1、rpm工具Red    Hat   Manager的缩写:有redhat公司开发,以数据库记录的方式安装在linux上一套程序,记录了包和包的依赖关系,卸载和安装比较困难,要求先安装依赖包,无穷无尽:

rpm包只能通过安装镜像的ISO中找到,首先给虚拟机连接光盘,然后挂载光驱后,会在/Packages/目录下看到很对后缀为.rpm的文件:

1.1:挂载mount    dev/cdrom      /mnt              #挂载光盘到/mnt/目录下

[root@localhost ~]# mount /dev/cdrom /mnt      #挂载光盘,只能以只读的方式挂载:
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# cd /mnt/                   #这里的都是安装系统所需的文件:
[root@localhost mnt]# ls
CentOS_BuildTag  EFI  EULA  GPL  images  isolinux  LiveOS  Packages  repodata  RPM-GPG-KEY-CentOS-7  RPM-GPG-KEY-CentOS-Testing-7  TRANS.TBL

1.2:查看rpm文件

[root@localhost mnt]# ls -l Packages/  |head -10       #下面的都是rpm的文件:
总用量 3912200
-rw-rw-r-- 2 root root  1783596 8月  10 2017 389-ds-base-1.3.6.1-16.el7.x86_64.rpm
-rw-rw-r-- 2 root root   693652 8月  10 2017 389-ds-base-libs-1.3.6.1-16.el7.x86_64.rpm
-rw-rw-r-- 2 root root   152952 8月  10 2017 abattis-cantarell-fonts-0.0.25-1.el7.noarch.rpm
-rw-rw-r-- 2 root root   548140 8月  10 2017 abrt-2.1.11-48.el7.centos.x86_64.rpm
-rw-rw-r-- 2 root root   196040 8月  10 2017 abrt-addon-ccpp-2.1.11-48.el7.centos.x86_64.rpm
-rw-rw-r-- 2 root root   107360 8月  10 2017 abrt-addon-kerneloops-2.1.11-48.el7.centos.x86_64.rpm
-rw-rw-r-- 2 root root    97616 8月  10 2017 abrt-addon-pstoreoops-2.1.11-48.el7.centos.x86_64.rpm
-rw-rw-r-- 2 root root   103456 8月  10 2017 abrt-addon-python-2.1.11-48.el7.centos.x86_64.rpm
-rw-rw-r-- 2 root root   107832 8月  10 2017 abrt-addon-vmcore-2.1.11-48.el7.centos.x86_64.rpm

rpm的构成部分:如下:

abrt   2. .  11 48.el7.centosx86_64.rpm                                            #对应

包名-主版本号.次版本号.修订版本号-发布版本号.运行平台位数.rpm 

1.3:rpm的常用命令:

rpm   [ -ivh  -Uvh  -e  -q   -qa   -qi  -ql   -qf ]  

rpm     -ivh             rpm包文件                         #安装一个包

-i :              install,安装这个包

-v :            verbose,可视化

-h :            显示安装进度

--forece :      表示强制安装,即使覆盖其他包的文件也要安装

--nodeps :    表示当前包依赖其他包,即使其他包为安装,也要安装这个包

[root@localhost Packages]# rpm -ivh zsh-5.0.2-28.el7.x86_64.rpm         #安装zsh,注意是包文件哦:
准备中...                          ################################# [100%]
正在升级/安装...
   1:zsh-5.0.2-28.el7                 ################################# [100%]

rpm    -Uvh    zsh-5.0.2-28.el7.x86_64.rpm         #升级一个包

rpm     -e       zsh-5.0.2-28.el7.x86_64.rpm         #卸载一个包

[root@localhost Packages]# rpm -e zsh       #成功卸载,不会有任何提示:
[root@localhost Packages]# rpm -q zsh       #再次查看时,提示未安装软件,表示成功卸载:
未安装软件包 zsh 


有时我们卸载zsh这个包,发现有依赖包无法卸载,需要先卸载依赖包才可以:如下:

[root@localhost Packages]# rpm -e libdnet      
错误:依赖检测失败:
	libdnet.so.1()(64bit) 被 (已安裝) open-vm-tools-10.1.5-3.el7.x86_64 需要

然后无穷无尽的卸载,哈哈哈哈哈哈!!!

rpm        -q             包名                       #查询这个包是否安装

[root@localhost ~]# rpm -q vim-enhanced            #如果安装则会输出安装的包:
vim-enhanced-7.4.160-1.el7_3.1.x86_64
[root@localhost ~]# rpm -q vim-enhanced123         #如果没安装则会提示not  installed:
package vim-enhanced123 is not installed

rpm       -qa                        #查询当前系统中已安装的包

[root@localhost ~]# rpm -qa |head -10                  #以下列出所有已安装的包:
time-1.7-45.el7.x86_64
patch-2.7.1-8.el7.x86_64
bc-1.06.95-13.el7.x86_64
rootfiles-8.1-11.el7.noarch
glibc-headers-2.17-157.el7_3.5.x86_64
redhat-lsb-core-4.1-27.el7.centos.1.x86_64
ivtv-firmware-20080701-26.el7.noarch
sysstat-10.1.5-11.el7.x86_64
tcpdump-4.5.1-3.el7.x86_64
python-setuptools-0.9.8-4.el7.noarch

rpm     -qi           包名                #查看一个已安装rpm包的相关信息:

[root@localhost ~]# rpm -qi vim-enhanced                    #查询相关信息如下:
Name        : vim-enhanced
Epoch       : 2
Version     : 7.4.160
Release     : 1.el7_3.1
Architecture: x86_64
Install Date: Thu 17 Aug 2017 07:47:39 AM CST
Group       : Applications/Editors
Size        : 2292098
License     : Vim
Signature   : RSA/SHA256, Thu 22 Dec 2016 01:14:11 AM CST, Key ID 24c6a8a7f4a80eb5
Source RPM  : vim-7.4.160-1.el7_3.1.src.rpm
Build Date  : Thu 22 Dec 2016 01:00:52 AM CST
Build Host  : c1bm.rdu2.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://www.vim.org/

rpm     -ql          包名                          #列出一个已安装rpm包的安装文件

[root@localhost ~]# rpm -ql vim-enhanced                  #安装的文件如下:
/etc/profile.d/vim.csh
/etc/profile.d/vim.sh
/usr/bin/rvim
/usr/bin/vim
/usr/bin/vimdiff
/usr/bin/vimtutor

rpm       -qf        包名                    #通过绝对路径查到这个文件属于哪个rpm包

[root@localhost ~]# which vim               #查询
/usr/bin/vim
[root@localhost ~]# rpm -qf /usr/bin/vim
vim-enhanced-7.4.160-1.el7_3.1.x86_64
[root@localhost ~]# rpm -qf `which vim`        #也可以通过反引号的方式,套用反引号输出的命令:
vim-enhanced-7.4.160-1.el7_3.1.x86_64

也可以使用反引号的命令:

rpm   -qf     `which  vim`       #通过which查询到绝对路径,然后输出给前面的命令

2、yum工具

yum工具比rpm工具方便多了,在于可以自动联网下载所需要的rpm包,并自动安装,解决依赖关系:

注意:yumCentos上是免费,在RedHat里使用则是收费的:

yum的用法:

yum     list                       #列出当前系统所有的rpm包的资源

[root@localhost ~]# yum list |head -10           #勒出当前系统的所有安装包
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Installed Packages
GeoIP.x86_64                              1.5.0-11.el7                   @base
NetworkManager.x86_64                     1:1.4.0-20.el7_3               @updates
NetworkManager-libnm.x86_64               1:1.4.0-20.el7_3               @anaconda
NetworkManager-tui.x86_64                 1:1.4.0-20.el7_3               bash
NetworkManager-wifi.x86_64                1:1.4.0-20.el7_3               updates
     #包名                                  #版本号                       #前面有@的,则表示已安装,没有则表                                                   示未安装:

以上也分为三部分

GeoIP.x86_64                              1.5.0-11.el7                   @base
   #包名                                          #版本号                       #@则表示已安装,没有@则表示未安装:

yum     serarch        包名                #表示搜索一个包:会出来许多信息,不精准:

[root@localhost ~]# yum search vim            #表示搜索一个包:
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
========================== N/S matched: vim ==========================
beakerlib-vim-syntax.noarch : Files for syntax highlighting BeakerLib
                            : tests in VIM editor
fluxbox-vim-syntax.noarch : Fluxbox syntax scripts for vim
neovim.x86_64 : Vim-fork focused on extensibility and agility
protobuf-vim.x86_64 : Vim syntax highlighting for Google Protocol
                    : Buffers descriptions
python2-neovim.noarch : Python client to Neovim
python34-neovim.noarch : Python client to Neovim

一般建议使用grep来过滤,如下:

[root@localhost ~]# yum list |grep vim        #方便快捷:
vim-common.x86_64                         2:7.4.160-1.el7_3.1            @updates
vim-enhanced.x86_64                       2:7.4.160-1.el7_3.1            @updates

yum     install   -y     vim-enhanced                #安装一个包

[root@localhost Packages]# yum install -y vim-enhanced
已加载插件:fastestmirror
 Determining fastest mirrors
 * base: mirror.bit.edu.cn
 * extras: mirrors.huaweicloud.com
 * updates: mirrors.huaweicloud.com
  验证中      : perl-Text-ParseWords-3.29-4.el7.noarch                                                                                                                                   30/31 
  验证中      : 2:vim-common-7.4.160-4.el7.x86_64                                                                                                                                        31/31 
已安装:
  vim-enhanced.x86_64 2:7.4.160-4.el7                                                                                                                                                          
作为依赖被安装:
  gpm-libs.x86_64 0:1.20.7-5.el7               perl.x86_64 4:5.16.3-292.el7                 
perl-Carp.noarch 0:1.26-244.el7                 perl-Encode.x86_64 0:2.51-7.el7                    
vim-common.x86_64 2:7.4.160-4.el7            vim-filesystem.x86_64 2:7.4.160-4.el7       
完毕!

yum   update   -y     包名                 #升级一个包

[root@localhost ~]# yum update bash               #升级一个包:
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package bash.x86_64 0:4.2.46-21.el7_3 will be updated
---> Package bash.x86_64 0:4.2.46-30.el7 will be an update
--> Finished Dependency Resolution
  Updating   : bash-4.2.46-30.el7.x86_64                          1/2
  Cleanup    : bash-4.2.46-21.el7_3.x86_64                        2/2
  Verifying  : bash-4.2.46-30.el7.x86_64                          1/2
  Verifying  : bash-4.2.46-21.el7_3.x86_64                        2/2

Updated:
  bash.x86_64 0:4.2.46-30.el7

Complete!

yum    remove      -y    vim                #卸载一个包

[root@localhost Packages]# yum remove -y vim
已加载插件:fastestmirror
正在解决依赖关系
--> 正在检查事务
---> 软件包 vim-enhanced.x86_64.2.7.4.160-4.el7 将被 删除
--> 解决依赖关系完成
Running transaction
  正在删除    : 2:vim-enhanced-7.4.160-4.el7.x86_64                                                                                                                                        1/1 
  验证中      : 2:vim-enhanced-7.4.160-4.el7.x86_64                                                                                                                                        1/1 

删除:
  vim-enhanced.x86_64 2:7.4.160-4.el7                                                                                                                                                          

完毕!

yum   grouplist           #列出管理组,系统的套件

yum     provides         "/*/vim"            #在系统里搜索vim的安装包

#最后的两个斜杠的中间为 ”*“表示路径不固定

如果我们要是没有安装vim,也就是说用witch是搜索不到的,那我们可以通过provides的方式来搜索

附记:利用光盘制作本地yum源:

有时候,linux系统不能联网,此时就不能使用联网的yum源了,这时需要我们自己在linux系统下使用光盘制作yum源:

1、首先要挂载光盘:     

mount      /dev/cdrom      /mnt               #挂载光盘

2、删除/etc/yum.repos.d目录下的所有repo文件(建议删除前先备份):

[root@localhost ~]# cp -r /etc/yum.repos.d   /etc/yum.repos.d.bak
[root@localhost ~]# rm -fr  /etc/yum.repos.d/* 

3、创建新的文件dvd.repo:

[root@localhost ~]# cat /etc/yum.repos.d/dvd.repo 
[dvd]                       #仓库名称:
name=install dvd            #自定义名称:
baseurl=file:///mnt         #yum的存在路径:
enabled=1                   #是否可用:(1为可用,0为不可用)
gpgcheck=0                  #是否检测:

4、刷新repos生成缓存: yum    clean all 

[root@localhost ~]# yum clean all
已加载插件:fastestmirror
正在清理软件源: dvd
Cleaning up everything
Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos
Cleaning up list of fastest mirrors

此时可以正常使用本地yum了,我们先用yum   list查看一下:

[root@localhost ~]# yum list |tail -10
yum-plugin-changelog.noarch             1.1.31-42.el7                  dvd      
yum-plugin-tmprepo.noarch               1.1.31-42.el7                  dvd      
yum-plugin-verify.noarch                1.1.31-42.el7                  dvd      
yum-plugin-versionlock.noarch           1.1.31-42.el7                  dvd      
yum-utils.noarch                        1.1.31-42.el7                  dvd      
zenity.x86_64                           3.22.0-1.el7                   dvd      
zip.x86_64                              3.0-11.el7                     dvd      
zlib-devel.x86_64                       1.2.7-17.el7                   dvd      
zsh.x86_64                              5.0.2-28.el7                   dvd      
zziplib.x86_64                          0.13.62-5.el7                  dvd  

此时都显示的是dvd格式的:表示本地yum源:

安装一下tftp软件试试:

[root@localhost ~]# yum install -y tftp               #安装tftp软件:
已加载插件:fastestmirror 
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 tftp.x86_64.0.5.2-13.el7 将被 安装
--> 解决依赖关系完成
Running transaction
  正在安装    : tftp-5.2-13.el7.x86_64                                                                                                                                                     1/1 
  验证中      : tftp-5.2-13.el7.x86_64                                                                                                                                                     1/1 

已安装:
  tftp.x86_64 0:5.2-13.el7                                                                                                                                                                     

完毕!

此时yum源使用正常:

 

 

 

 

 

 

 

 

 

转载于:https://my.oschina.net/yuanhaohao/blog/1836758

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值