linux基础(day21)

2022-01-06 13:49:54 浏览数 (1)

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工具是最简单的

7.2 rpm包介绍

rpm介绍概要

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

rpm包介绍

  • 要想使用rpm包,就需要先有rpm工具
代码语言:javascript复制
[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
等等等 
  • 我们可以看到它是由 . 和 - 组成
代码语言:javascript复制
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 表示显示安装进度
代码语言:javascript复制
[root@localhost Packages]# rpm -ivh zsh-5.0.2-25.el7.x86_64.rpm        
准备中...                          ################################# [100%]
正在升级/安装...
   1:zsh-5.0.2-25.el7                 ################################# [100%]
代码语言:javascript复制
这个文件在当前路径,可以加 ./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介绍
代码语言:javascript复制
[root@localhost Packages]# rpm -e zsh
[root@localhost Packages]# 
代码语言:javascript复制
直接删除,不会有任何提示。(若是有提示,很有可能是出现什么错误了)
  • 在卸载rpm包的时候,有可能会提示有依赖包存在,在去卸载依赖包的时候,会提示有更好的依赖包存在,所以rpm不太容易使用

4.查询安装包

  • rpm -qa //查看安装包
代码语言:javascript复制
[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
代码语言:javascript复制
列出来的都是已经安装好的包,这些都可以直接卸载

5.查询指定包是否安装

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

查询指定包信息

  • rpm -qi vim-enhanced //查询指定包信息
    • q 表示 信息
代码语言:javascript复制
[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包安装的文件
代码语言:javascript复制
[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 文件绝对路径 //查看一个文件是否是由哪个包安装的
代码语言:javascript复制
[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 去查看
代码语言:javascript复制
[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包
代码语言:javascript复制
[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     
代码语言:javascript复制
最左侧是包的名字加相关信息
中间这一列是它的版本号以及平台版本号
最右侧是它仓库的名字

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

代码语言:javascript复制
[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]# 
代码语言:javascript复制
会看到其中 方括号中 的就是仓库的名字,把包放进容器中,而容器就是仓库,而仓库的地址上述有链接,rpm包就是在里面寻找

搜索一个包

  • yum search vim //搜索vim包
代码语言:javascript复制
[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]# 
代码语言:javascript复制
会搜索到与vim相关的包,但也会搜索出来一些说明。(若想只要包,则可以过滤) 如下
  • 若想搜索的更加精准,则可以使用grep过滤下
  • yum list |grep 'vim' 搜索可用的vim包
代码语言:javascript复制
[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]# 
代码语言:javascript复制
只要包名带有vim的,就会显示出来,并且vim还会有颜色显示

安装包的命令

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

列出可用组

  • yum grouplist //把可用的组全都列出来
代码语言:javascript复制
[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]# 
代码语言:javascript复制
若选择其中的组就会安装组里面的rpm包,在安装完系统后,进入系统,使用yum工具安装这些组
  • 若想不想中文显示,可以输入 LANG=en

安装组的命令

  • yum groupinstall [-y] //安装可用组
    • 若安装的组是一个单词,可以不用加任何的字符
    • 若组之间是由几个单词构成(区别:就是有空格),那就加上单引号 ' '
代码语言:javascript复制
[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包

在做本地仓库的时候,首先需要一个光驱或光盘(镜像文件)

然后挂载,访问到其中的rpm包

并将一下文件添加到 vi dvd.repo 中去

清除之前的缓存 yum clean all

使用yum list查看,或者翻屏查看命令 yum list |less

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

扩展

    1. yum保留已经安装过的包
    • 设置yum保留已经下载的rpm包,供以后升级或重新安装时使用
    • 修改/etc/yum.conf文件
      • [main]
      • cachedir=/home/soft1/yumcache
      • keepcache=1
      • debuglevel=2
    • cachedir是设置下载包的地方,可以修改为自己想存放的位置
    • keepcashe为1 时,表示已经保存下载的rpm包了
代码语言:javascript复制
[root@hf-01 ~]# vim /etc/yum.conf

[main]
cachedir=/home/soft1/yumcache
keepcache=1
debuglevel=2
    1. 搭建局域网yum源

0 人点赞