linux基础(day21)

7.1 安装软件包的三种方法

各系统中安装的文件

  • windows中,安装包双击的exe文件,也是二进制安装包,不能使用记事本或word这种文本文档工具去查看
  • linux中,安装包也是二进制文件,不能使用cat、less、head等工具去查看

安装软件包的方法

  • linux中安装软件包有三种方法
  1. rpm工具
    • 这种包就相似于windows中的exe比较类似,直接使用rpm工具就能将软件装上,不须要作过多的设置——>安装路径和文件名基本都是固定好的
  2. yum工具
    • 它是另一种工具安装rpm包。
    • 在centos和redhat下,这种包就作 rpm包 。
    • yum属于使用python开发的工具,它实际操做的对象也是rpm包
    • yum工具比rpm工具备一个优点,支持自动安装依赖的包
  3. 源码包
    • 在windows下,几乎没有
    • 源码包,就是所谓的源代码,能够查看到各个语言开发的各类文件件,须要经过一种编辑器,把源码包编译一种可执行的文件

在三种方法中,源码包是最难的,yum工具是最简单的html

7.2 rpm包介绍

rpm介绍概要

  • 设置光驱并挂载
  • rpm包格式,包名、版本名、发布版本号、平台

rpm包介绍

  • 要想使用rpm包,就须要先有rpm工具
  1. 首先打开vmware,而后选择右下角的 “光盘图标” ,鼠标右击 “设置”python

    输入图片说明

  2. 将光盘链接到linux系统上linux

    输入图片说明

  3. 挂载光驱git

    [root@hf-01 ~]# df -h        查看/mnt/目录是否使用
    文件系统        容量  已用  可用 已用% 挂载点
    /dev/sda3        18G  3.1G   15G   18% /
    devtmpfs        488M     0  488M    0% /dev
    tmpfs           494M     0  494M    0% /dev/shm
    tmpfs           494M  6.7M  487M    2% /run
    tmpfs           494M     0  494M    0% /sys/fs/cgroup
    /dev/sda1       197M   76M  122M   39% /boot
    [root@hf-01 ~]# ls /mnt/
    [root@hf-01 ~]# mount /dev/cdrom /mnt/
    mount: /dev/sr0 写保护,将以只读方式挂载
    • 这里会看到挂载到/mnt/,只能以只读方式挂载,这是由于光盘和光驱是只读的,不能写入东西
  4. 进入到/mnt/目录下,并查看文件vim

    [root@hf-01 ~]# cd /mnt/
    [root@hf-01 mnt]# ls
    CentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7
    EFI              images    Packages  RPM-GPG-KEY-CentOS-Testing-7
    EULA             isolinux  repodata  TRANS.TBL
    [root@hf-01 mnt]#
    • 这里会看到一些文件和目录,都是存在于光驱里面的内容,在安装系统的时候,就是使用的这些文件
  5. 在/mnt/中的一个Packages 目录中有不少 .rpm 文件,而这些文件就是rpm包windows

[root@hf-01 mnt]# cd Packages/
[root@hf-01 Packages]# ls
yum-utils-1.1.31-24.el7.noarch.rpm
zenity-3.8.0-4.el7.x86_64.rpm
zip-3.0-10.el7.x86_64.rpm
zlib-1.2.7-13.el7.x86_64.rpm
zlib-devel-1.2.7-13.el7.x86_64.rpm
zsh-5.0.2-7.el7.x86_64.rpm
等等等
  • 咱们能够看到它是由 . 和 - 组成
yelp-3.8.1-7.el7.x86_64.rpm
yelp-libs-3.8.1-7.el7.x86_64.rpm
  • 从左到右能够将它们划分为几部分
  • 第一部分,字符串,这些字符串就是 包名 ,好比:yelp
    • 有时在包名中也会存在 - 或 数字 , 在包名后紧跟的是版本号
  • 第二部分,版本号 ,好比:3.8.1
    • 版本号里面又分为主版本号,次版本号,小版本号(小版本号又称之为修正版本)
      • 第1个数字就是版本号,第2个数字就是次版本号,第3个数字为小版本号
  • 第三部分,发布版本号 ,好比:7.el7
  • 第四部分,发布平台位数 ,好比:x86_64——>64位系统
    • 在centos7中,已经再也不区分32位和64位,默认都是64位
    • 在centos6以前的版本(包括版本6),都是区分32位仍是64位的
    • 64的平台能够安装32位的安装包的 (32位平台安装64位的包是不支持的)
  • 第五部分,后缀名 好比:.rpm

7.3 rpm工具用法

rpm使用目录概要

  • rpm -ivh rpm包文件 //安装
  • rpm -Uvh rpm包文件 //升级
  • rpm -e 包名 //卸载
  • rpm -qa //查询安装的包
  • rpm -q 包名 //查询指定包是否安装
  • rpm -qi 包名 //查询指定包的信息
  • rpm -ql 包名 //列出包安装的文件
  • rpm -qf 文件绝对路径 //查看一个文件是不是由哪一个包安装的

1.安装rpm包

  • rpm -ivh zsh-5.0.2-25.el7.x86_64.rpm //安装
    • i 表示安装
    • v 表示可视化
    • h 表示显示安装进度
[root@localhost Packages]# rpm -ivh zsh-5.0.2-25.el7.x86_64.rpm        
准备中...                          ################################# [100%]
正在升级/安装...
   1:zsh-5.0.2-25.el7                 ################################# [100%]
这个文件在当前路径,能够加 ./zsh-5.0.2-25.el7.x86_64.rpm,或者可使用相对路径,不用加 ./
安装rpm包的时候,也会存在依赖包

2.升级rpm包

  • rpm -Uvh zsh-5.0.2-25.el7.x86_64.rpm
    • 当发现新版本的时候,就能够直接升级

3.卸载rpm包

  • rpm -e zsh 卸载zsh包名的rpm包 //详细请看7.2rpm介绍
[root@localhost Packages]# rpm -e zsh
[root@localhost Packages]#
直接删除,不会有任何提示。(如果有提示,颇有多是出现什么错误了)
  • 在卸载rpm包的时候,有可能会提示有依赖包存在,在去卸载依赖包的时候,会提示有更好的依赖包存在,因此rpm不太容易使用

4.查询安装包

  • rpm -qa //查看安装包
[root@localhost Packages]# rpm -qa    这里截取了前几行代码
trousers-0.3.13-1.el7.x86_64
filesystem-3.2-21.el7.x86_64
bind-license-9.9.4-37.el7.noarch
fxload-2002_04_11-16.el7.x86_64
nss-softokn-freebl-3.16.2.3-14.4.el7.x86_64
libthai-0.1.14-9.el7.x86_64
列出来的都是已经安装好的包,这些均可以直接卸载

5.查询指定包是否安装

  • rpm -q ppp 查看ppp包是否安装(ppp表示包名)
[root@localhost Packages]# rpm -q ppp
ppp-2.4.5-33.el7.x86_64
[root@localhost Packages]#
如果已经安装的包,会直接显示出来;
如果未安装的包,则会提示未安装软件包。

查询指定包信息

  • rpm -qi vim-enhanced //查询指定包信息
    • q 表示 信息
[root@localhost Packages]# rpm -qi vim-enhanced
Name        : vim-enhanced        //包名
Epoch       : 2
Version     : 7.4.160            //版本
Release     : 2.el7                //发布版本
Architecture: x86_64            //架构
Install Date: 2017年11月02日 星期四 11时24分32秒        //安装时间
Group       : Applications/Editors            //属于哪一个组
Size        : 2292098
License     : Vim
Signature   : RSA/SHA256, 2017年08月11日 星期五 04时15分38秒, Key ID 24c6a8a7f4a80eb5
Source RPM  : vim-7.4.160-2.el7.src.rpm
Build Date  : 2017年08月02日 星期三 08时46分12秒
Build Host  : c1bm.rdu2.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://www.vim.org/
Summary     : A version of the VIM editor which includes recent enhancements
Description :
VIM (VIsual editor iMproved) is an updated and improved version of the
vi editor.  Vi was the first real screen-based editor for UNIX, and is
still very popular.  VIM improves on vi by adding new features:
multiple windows, multi-level undo, block highlighting and more.  The
vim-enhanced package contains a version of VIM with extra, recently
introduced features like Python and Perl interpreters.

Install the vim-enhanced package if you'd like to use a version of the
VIM editor which includes recently added enhancements like
interpreters for the Python and Perl scripting languages.  You'll also
need to install the vim-common package.
[root@localhost Packages]#

列出包安装的文件

  • rpm -ql vim-enhanced //列出vim-enhanced包安装的文件
[root@localhost Packages]# 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
[root@localhost Packages]#

6.根据绝对路径去查询是由哪一个包安装的

  • rpm -qf 文件绝对路径 //查看一个文件是不是由哪一个包安装的
[root@localhost Packages]# rpm -qf /usr/bin/vim    根据文件的绝对路径来查看到是由哪一个包安装的
vim-enhanced-7.4.160-2.el7.x86_64
[root@localhost Packages]#

7.rpm特殊命令``

  • rpm -qf which cd
    • 特殊命令,反引号``
      • 举例:如果有一个命令 cd,但不知道它的路径在哪里
        • 使用 which cd 去查看
[root@localhost Packages]# rpm -qf `which cd`
bash-4.2.46-20.el7_2.x86_64
[root@localhost Packages]# which cd
/usr/bin/cd
[root@localhost Packages]#

7.4 yum工具用法

yum工具目录概要

  • yum list //列出可用rpm包
  • ls /etc/yum.repos.d/
  • yum search vim //搜索包
  • yum install [-y] //安装包的命令
  • yum grouplist //搜索组的命令
  • yum groupinstall [-y] //安装组的命令
  • yum remove [-y] //卸载rpm包(直接卸载依赖包)
  • yum update [-y] //升级rpm包
  • yum provides "/*/vim" //查找命令缩依赖的包

列出可用的rpm包

  • yum工具能够解决包之间的依赖关系,只需输入包名
  • yum list //列出可用的rpm包
[root@localhost Packages]# yum list            //列出可用的rpm包(这里只截取了一点)
zziplib-devel.i686                         0.13.62-5.el7                       base     
zziplib-devel.x86_64                       0.13.62-5.el7                       base     
zziplib-utils.x86_64                       0.13.62-5.el7                       base
最左侧是包的名字加相关信息
中间这一列是它的版本号以及平台版本号
最右侧是它仓库的名字

仓库名字的由来,能够从 /etc/yum.repos.d/ 看yum的配置文件,在 /etc/yum.repos.d/中最核心的就是CentOS-Base.repo文件centos

[root@localhost Packages]# ls /etc/yum.repos.d/
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo
[root@localhost Packages]# ls /etc/yum.repos.d/CentOS-Base.repo 
/etc/yum.repos.d/CentOS-Base.repo
[root@localhost Packages]# cat !$
cat /etc/yum.repos.d/CentOS-Base.repo
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the 
# remarked out baseurl= line instead.
#
#

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#released updates 
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[root@localhost Packages]#
会看到其中 方括号中 的就是仓库的名字,把包放进容器中,而容器就是仓库,而仓库的地址上述有连接,rpm包就是在里面寻找

搜索一个包

  • yum search vim //搜索vim包
[root@localhost Packages]# yum search vim
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.163.com
=================================== N/S matched: vim ===================================
protobuf-vim.x86_64 : Vim syntax highlighting for Google Protocol Buffers descriptions
vim-X11.x86_64 : The VIM version of the vi editor for the X Window System
vim-common.x86_64 : The common files needed by any version of the VIM editor
vim-enhanced.x86_64 : A version of the VIM editor which includes recent enhancements
vim-filesystem.x86_64 : VIM filesystem layout
vim-minimal.x86_64 : A minimal version of the VIM editor

  名称和简介匹配 only,使用“search all”试试。
[root@localhost Packages]#
会搜索到与vim相关的包,但也会搜索出来一些说明。(若想只要包,则能够过滤) 以下
  • 若想搜索的更加精准,则可使用grep过滤下
  • yum list |grep 'vim' 搜索可用的vim包
[root@hf-01 Packages]# yum list |grep 'vim'
vim-common.x86_64                          2:7.4.160-2.el7             @base    
vim-enhanced.x86_64                        2:7.4.160-2.el7             @base    
vim-filesystem.x86_64                      2:7.4.160-2.el7             @base    
vim-minimal.x86_64                         2:7.4.160-1.el7             @anaconda
protobuf-vim.x86_64                        2.5.0-8.el7                 base     
vim-X11.x86_64                             2:7.4.160-2.el7             base     
vim-minimal.x86_64                         2:7.4.160-2.el7             base     
[root@hf-01 Packages]#
只要包名带有vim的,就会显示出来,而且vim还会有颜色显示

安装包的命令

  • yum install [-y] 包名 ——>这里的 -y 表示加了就不在询问是否须要安装

列出可用组

  • yum grouplist //把可用的组全都列出来
[root@hf-01 Packages]# yum grouplist
已加载插件:fastestmirror
没有安装组信息文件
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: centos.ustc.edu.cn
 * updates: centos.ustc.edu.cn
Available environment groups:
   最小安装
   基础设施服务器
   计算节点
   文件及打印服务器
   基本网页服务器
   虚拟化主机
   带 GUI 的服务器
   GNOME 桌面
   KDE Plasma Workspaces
   开发及生成工做站
可用组:
   传统 UNIX 兼容性
   兼容性程序库
   图形管理工具
   安全性工具
   开发工具
   控制台互联网工具
   智能卡支持
   科学记数法支持
   系统管理
   系统管理工具
完成
[root@hf-01 Packages]#
若选择其中的组就会安装组里面的rpm包,在安装完系统后,进入系统,使用yum工具安装这些组
  • 若想不想中文显示,能够输入 LANG=en

安装组的命令

  • yum groupinstall [-y] //安装可用组
    • 若安装的组是一个单词,能够不用加任何的字符
    • 若组之间是由几个单词构成(区别:就是有空格),那就加上单引号 ' '
[root@hf-01 Packages]# yum groupinstall 'Virtualization Host'

yum卸载包的命令

  • yum remove [-y] //卸载包的命令
    • yum卸载包的时候,会直接卸载依赖的包(比较危险)

yum升级包的命令

  • yum update [-y] //升级包的命令
    • 在升级包的时候,如果在该 yum update 命令后面不加载包名,则会把系统中全部的rpm包升级(包括系统、内核都会升级)
    • 通常升级的时候,都是在刚安装完系统的时候去作;如果已经安装了一些服务等,而后去升级,则会有可能出现问题

yum搜索命令是由哪一个包组成

  • yum provides "/*/vim" //查找vim命令是由哪一个包构成

7.5 yum搭建本地仓库

yum本地仓库目录概要

  • 挂载镜像到/mnt/目录
    • 先将光驱链接起来
    • 而后在挂载 mount /dev/cdrom /mnt/
    • 切换到/etc/yum.repos.d目录下
  • cp -r /etc/yum.repos.d /etc/yum.repos.d.bak 将文件和目录一同拷贝到另外一个位置
  • vim /etc/yum/repos.d/dvd.repo //内容以下
    • [dvd]
    • name=install dvd
    • baseurl=file:///mnt
    • enable=1
    • gpgcheck=0
  • yum clean all
  • yum list

搭建yum本地仓库

  • 假设在centos中,却不能联网,而默认的yum仓库则须要远程链接资源网站下载的的,而咱们则能够搭建一个yum的本地仓库,在本地的路径中安装rpm包
  1. 在作本地仓库的时候,首先须要一个光驱或光盘(镜像文件)
    • 先将光驱链接起来
    • 而后在挂载 mount /dev/cdrom /mnt/
    • 切换到/etc/yum.repos.d目录下
  2. 而后挂载,访问到其中的rpm包
    [root@hf-01 Packages]# cd
    [root@hf-01 ~]# cp -r /etc/yum.repos.d /etc/yum.repos.d.bak
    [root@hf-01 ~]# cd /etc/yum.repos.d
    [root@hf-01 yum.repos.d]# rm -rf ./*
    [root@hf-01 yum.repos.d]# vi dvd.repo
  3. 并将一下文件添加到 vi dvd.repo 中去
    • [dvd] //就是仓库的名字
    • name=install dvd //这个就是自定义,做为描述的字符串(没啥做用)
    • baseurl=file:///mnt //就是rpm包在哪里,在 /mnt/ 光驱的路径
    • enable=1 //是否可用,1 表示可用——>改为0,表示这个yum仓库不能使用
    • gpgcheck=0 //表示是否检测
  4. 清除以前的缓存 yum clean all
    [root@hf-01 yum.repos.d]# yum clean all
     已加载插件:fastestmirror
    正在清理软件源: dvd
    Cleaning up everything
    Cleaning up list of fastest mirrors
    [root@hf-01 yum.repos.d]#
  5. 使用yum list查看,或者翻屏查看命令 yum list |less
    [root@hf-01 yum.repos.d]# yum list 
    已加载插件:fastestmirror
    Loading mirror speeds from cached hostfile
    已安装的软件包
    GConf2.x86_64                     3.2.6-8.el7                          @base    
    ModemManager-glib.x86_64          1.1.0-6.git20130913.el7              @anaconda
    NetworkManager.x86_64             1:0.9.9.1-13.git20140326.4dba720.el7 @anaconda
    NetworkManager-glib.x86_64        1:0.9.9.1-13.git20140326.4dba720.el7 @anaconda
    NetworkManager-tui.x86_64         1:0.9.9.1-13.git20140326.4dba720.el7 @anaconda
    OpenEXR-libs.x86_64               1.7.1-7.el7                          @base    
    
    只截取了一小段
    
    Availsble Packages            //能够安装的包
    389-ds-base.x86_64                1.3.5.10-11.el7            dvd
    最右侧以 @ 开头的,表示已经安装过的rpm包

yum本地仓库,方便使用本地的光盘做为他的仓库,作为它的依赖的包缓存

扩展

    1. yum保留已经安装过的包
    • 设置yum保留已经下载的rpm包,供之后升级或从新安装时使用
    • 修改/etc/yum.conf文件
      • [main]
      • cachedir=/home/soft1/yumcache
      • keepcache=1
      • debuglevel=2
    • cachedir是设置下载包的地方,能够修改成本身想存放的位置
    • keepcashe为1 时,表示已经保存下载的rpm包了
[root@hf-01 ~]# vim /etc/yum.conf

[main]
cachedir=/home/soft1/yumcache
keepcache=1
debuglevel=2
相关文章
相关标签/搜索