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
相關文章
相關標籤/搜索