1. 程式人生 > >Linux基礎_軟件包管理

Linux基礎_軟件包管理

撥號 glib 是否 org fff med emacs nmp hat

一,軟件包管理

# 使用rpm安裝及移除軟件RPM

1:rpm:Red-Hat Package Manager

2:rpm文件形式

yum-metadata-parser-1.1.2-16.el6.x86_64.rpm
第1部分是name,表示這個rpm軟件包的名稱;            # yum-metadata-parser
第2部分是version,表示這個rpm軟件包的版本編號;        # 1.1.2
第3部分是release,表示這個rpm軟件包的版本發布次數(修正號碼);    # 16
第4部分是architectures,表示這個rpm軟件包適用於哪些平臺;        #
el6 第5部分是CPU的位數 # x86_64 最後一部分是rpm,表示這個rpm軟件包的文件擴展名。 # rpm
# 註:如果軟件包版本編號的最後一位為奇數,說明該軟件包為測試版本 偶數為穩定版本

# 安裝軟件包

# 基本操作方法
rpm -ivh + 軟件包名稱
i:安裝   v:安裝詳細信息    h:顯示進度

# 例如安裝軟件包 zsh-4.3.11-4.el6.centos.2.x86_64.rpm

[root@localhost Packages]# rpm -ivh zsh-4.3.11-4.el6.centos.2.x86_64.rpm 
warning: zsh-4.3.11-4.el6.centos.2.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY Preparing... ########################################### [100%] 1:zsh ########################################### [100%] [root@localhost Packages]# # 查看計算機中已安裝的軟件包 [root@localhost Packages]#
rpm -qa # 顯示所有已安裝的軟件包 # 對安裝的軟件包進行過濾 [root@localhost Packages]# rpm -qa | grep ‘zsh‘ zsh-4.3.11-4.el6.centos.2.x86_64 [root@localhost Packages]# # 只查詢一個 [root@localhost Packages]# rpm -q zsh zsh-4.3.11-4.el6.centos.2.x86_64 [root@localhost Packages]# # 刪除軟件包 [root@localhost Packages]# rpm -e zsh

# 覆蓋安裝

## 當安裝兩遍時
# 第一遍成功
[root@localhost Packages]# rpm -ivh zsh-4.3.11-4.el6.centos.2.x86_64.rpm 
warning: zsh-4.3.11-4.el6.centos.2.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing...                ########################################### [100%]
   1:zsh                    ########################################### [100%]
   
# 第二遍失敗
[root@localhost Packages]# rpm -ivh zsh-4.3.11-4.el6.centos.2.x86_64.rpm 
warning: zsh-4.3.11-4.el6.centos.2.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing...                ########################################### [100%]
    package zsh-4.3.11-4.el6.centos.2.x86_64 is already installed
[root@localhost Packages]# 

--force  覆蓋安裝
[root@localhost Packages]# rpm -ivh zsh-4.3.11-4.el6.centos.2.x86_64.rpm --force
warning: zsh-4.3.11-4.el6.centos.2.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing...                ########################################### [100%]
   1:zsh                    ########################################### [100%]

# --nodeps 忽略刪除軟件包時存在的依賴性

# 當刪除一個文件時,該文件被另一個文件所使用,存在依賴性,不能進行刪除
[root@localhost Packages]# rpm -e dhcp-common
error: Failed dependencies:
    dhcp-common = 12:4.1.1-51.P1.el6.centos is needed by (installed) dhclient-12:4.1.1-51.P1.el6.centos.x86_64

# --nodeps 忽略依賴性
[root@localhost Packages]# rpm -e dhcp-common --nodeps

# 當安裝軟件包時存在依賴性

# 安裝時存在依賴性(不能進行安裝)
[root@localhost Packages]# rpm -ivh dhclient-4.1.1-51.P1.el6.centos.x86_64.rpm 
warning: dhclient-4.1.1-51.P1.el6.centos.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
error: Failed dependencies:
    dhcp-common = 12:4.1.1-51.P1.el6.centos is needed by dhclient-12:4.1.1-51.P1.el6.centos.x86_64

# 安裝依賴性前的文件
    [root@localhost Packages]# rpm -ivh dhcp-common-4.1.1-51.P1.el6.centos.x86_64.rpm 
warning: dhcp-common-4.1.1-51.P1.el6.centos.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing...                ########################################### [100%]
   1:dhcp-common            ########################################### [100%]

# 再安裝要安裝的文件
[root@localhost Packages]# rpm -ivh dhclient-4.1.1-51.P1.el6.centos.x86_64.rpm warning: dhclient-4.1.1-51.P1.el6.centos.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing...                ########################################### [100%]
    package dhclient-12:4.1.1-51.P1.el6.centos.x86_64 is already installed

# 安裝網絡上的安裝包(得聯網)

# 從網絡上直接安裝
[root@localhost Packages]# rpm -ivh http://vault.centos.org/6.8/extras/x86_64/Packages/python-boto-2.32.1-1.el6.centos.noarch.rpm
Retrieving http://vault.centos.org/6.8/extras/x86_64/Packages/python-boto-2.32.1-1.el6.centos.noarch.rpm
warning: /var/tmp/rpm-tmp.fTZN9K: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing...                ########################################### [100%]
   1:python-boto            ########################################### [100%]


# 將網路中的安裝包下載下來 wget
[root@localhost ~]# wget http://vault.centos.org/6.8/extras/x86_64/Packages/python-boto-2.32.1-1.el6.centos.noarch.rpm


# 查詢安裝信息
[root@localhost ~]# rpm -qi python-boto
Name        : python-boto                  Relocations: (not relocatable)
Version     : 2.32.1                            Vendor: CentOS
Release     : 1.el6.centos                  Build Date: 2014年11月01日 星期六 00時47分37秒
Install Date: 2019年01月23日 星期三 22時44分30秒      Build Host: c6b8.bsys.dev.centos.org
Group       : Development/Languages         Source RPM: python-boto-2.32.1-1.el6.centos.src.rpm
Size        : 8846304                          License: MIT
Signature   : RSA/SHA1, 2014年11月04日 星期二 02時54分24秒, Key ID 0946fca2c105b9de
Packager    : CentOS BuildSystem <http://bugs.centos.org>
URL         : https://github.com/boto/boto
Summary     : A simple, lightweight interface to Amazon Web Services
Description :
Boto is a Python package that provides interfaces to Amazon Web Services.
It supports over thirty services, such as S3 (Simple Storage Service),
SQS (Simple Queue Service), and EC2 (Elastic Compute Cloud) via their
REST and Query APIs.  The goal of boto is to support the full breadth
and depth of Amazon Web Services.  In addition, boto provides support
for other public services such as Google Storage in addition to private
cloud systems like Eucalyptus, OpenStack and Open Nebula.

# 查詢軟件安裝包安裝的位置

# 查詢軟件包安裝的位置 rpm -ql +文件名
[root@localhost ~]# rpm -ql python-boto

二,yum安裝

1:yum:Yello dog Updater

2:目的:解決RPM的依賴關系問題

rpm ---->安裝源(本地,網路)
yum ---->安裝源(本地源:使用固定格式 file://)

# 在配置文件中添加以下內容

[root@localhost ~]# vim /etc/yum.repos.d/local.repo
[root@localhost ~]# cat /etc/yum.repos.d/local.repo
[local]
name=local yum
baseurl=file:///media/CentOS_6.8_Final
enable=1
gpgcheck=0
[root@localhost ~]# 

# 內容
[local]
name=local yum
baseurl=file:///media/CentOS_6.8_Final
enable=1
gpgcheck=0

# yum解決依賴性的原理:在一個文件中存放各種依賴性關系

1)找到配置文件中的 baseurl=file:///media/CentOS_6.8_Final 
2)在該目錄下有個文件repodata(裏面存放依賴性關系)
3)再到baseurl=file:///media/CentOS_6.8_Final中找到所有需要的軟件包

# 安裝一個具有依賴性的文件

# 不能用rpm直接安裝
[root@localhost Packages]# rpm -ivh dhclient-4.1.1-51.P1.el6.centos.x86_64.rpm 
warning: dhclient-4.1.1-51.P1.el6.centos.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
error: Failed dependencies:
    dhcp-common = 12:4.1.1-51.P1.el6.centos is needed by dhclient-12:4.1.1-51.P1.el6.centos.x86_64

# 可以用yum安裝
root@localhost ~]# yum install dhclient
已加載插件:fastestmirror, refresh-packagekit, security
設置安裝進程
(下面省略)

## 自定義yum語言

技術分享圖片
# 1 安裝createrepo(createrepo用來創建repodata文件)
[root@localhost Packages]# vim /etc/yum.repos.d/local.repo
[root@localhost Packages]# yum install createrepo-0.9.9-24.el6.noarch.rpm 


# 2 在/test目錄下安裝repodata
#未安裝repodata的 
[root@localhost Packages]# ls /test
dhcp-4.1.1-51.P1.el6.centos.x86_64.rpm
dhcp-common-4.1.1-51.P1.el6.centos.x86_64.rpm

# 安裝repodata的(依賴關系文件)
[root@localhost Packages]# createrepo /test
Spawning worker 0 with 2 pkgs
Workers Finished
Gathering worker results

Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete

# 瀏覽test目錄,多了一個repodata依賴性文件
[root@localhost Packages]# ls /test
dhcp-4.1.1-51.P1.el6.centos.x86_64.rpm         repodata
dhcp-common-4.1.1-51.P1.el6.centos.x86_64.rpm
[root@localhost Packages]# 
# 此時的test文檔下有文件repodata,該文件具有依賴性關系的包,可以將yum的配置文件的baseurl指向/test,當安裝軟件包時,就會到該目錄/test下找repodata文件
代碼

# yum軟件包的更多知識

yum -y install *http*    # 表示安裝xxx + http + xxx

# 刪除某個軟件包 erase
[root@localhost Packages]# yum erase dhcp-common

# 加載依賴性關系(讓安裝軟件包時減少時間)
[root@localhost Packages]# yum makecache

# 安裝網絡中的軟件包

在baseurl中寫到x86_64即可,因為該目錄下有repodata(依賴性文件)


# 具體方法
[root@localhost ~]# cd /etc/yum.repos.d
[root@localhost yum.repos.d]# touch centos.repo
[root@localhost yum.repos.d]# vim centos.repo
[root@localhost yum.repos.d]# cat centos.repo
[centos]
name=remote yum
baseurl=http://vault.centos.org/6.8/extras/x86_64/
enabled=1
gpgcheck=0 
[root@localhost yum.repos.d]# yum install epel-release -y
已加載插件:fastestmirror, refresh-packagekit, security
設置安裝進程
(下方省略)

技術分享圖片

## 註:當從網絡上直接安裝的軟件包,安裝完成後yum會將軟件包刪除
# 若想安裝後保存軟件包,則得修改配置文件
[root@localhost yum.repos.d]# vim /etc/yum.conf
# 文件中的該行內容控制是否保存安裝後的軟件包
keepcache=0 # 不保存緩存
keepcache=1 # 保存緩存

## 源碼安裝

1)準備
yum install gcc-* glibc-* make -y
源碼路徑:https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz
# 將源碼下載到本地
[root@localhost Python-3.7.2]# wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz

2)解包
tar xvf Python-3.7.2.tgz

3)執行腳本configure,添加編譯參數,指定安裝路勁
[root@localhost Python-3.7.2]# ./configure --prefix=/usr/local/python3.7

## grouplist

技術分享圖片
[root@localhost Python-3.7.2]# yum grouplist
已加載插件:fastestmirror, refresh-packagekit, security
設置組進程
Loading mirror speeds from cached hostfile
 * base: ftp.sjtu.edu.cn
 * epel: mirrors.aliyun.com
 * extras: mirrors.163.com
 * updates: mirror.jdcloud.com
epel/group_gz                                            |  71 kB     00:00     
已安裝的組:
   Java 平臺
   Milkymist
   NFS 文件服務器
   Perl 支持
   X 窗口系統
   萬維網服務器
   互聯網應用程序
   互聯網瀏覽器
   兼容程序庫
   辦公套件和生產率
   圖形管理工具
   基本
   字體
   安全性工具
   性能工具
   打印客戶端
   打印服務器
   撥號網絡支持
   服務器平臺
   桌面
   桌面平臺
   桌面調試和運行工具
   電子實驗室
   電子郵件服務器
   目錄客戶端
   硬件監控工具
   繼承 UNIX 兼容性
   繼承 X Windows 系統的兼容性
   網絡基礎設施服務器
   網絡文件系統客戶端
   聯網工具
   調試工具
   輸入法
   通用桌面
   附加開發
Installed Language Groups:
   不丹語支持 [dz]
   中文支持 [zh]
   烏爾都語支持 [ur]
   亞美尼亞語支持 [hy]
   伊努伊特語支持 [iu]
   印地語支持 [hi]
   敘利亞語支持 [or]
   古吉拉特語支持 [gu]
   古吉拉特語支持 [mr]
   坎納達語支持 [kn]
   埃塞俄比亞語支持 [am]
   塔吉克語支持 [tg]
   孟加拉語支持 [bn]
   希伯來語支持 [he]
   庫德語支持 [ku]
   康幹語支持 [kok]
   文達語支持 [ve]
   新哈拉語支持 [si]
   旁遮普語支持 [pa]
   日語支持 [ja]
   格魯吉亞語支持 [ka]
   比哈爾語支持 [mai]
   泰盧固語支持 [te]
   泰米爾語支持 [ta]
   泰語支持 [th]
   緬甸語支持 [my]
   老撾語支持 [lo]
   阿拉伯語支持 [ar]
   阿薩姆語支持 [as]
   韓文支持 [ko]
   馬來語支持 [ml]
   高棉語支持 [km]
有效的組:
   CIFS 文件服務器
   Eclipse
   Emacs
   FCoE 存儲客戶端
   FTP 服務器
   Fedora Packager
   Haskell
   Infiniband 支持
   KDE 桌面
   MySQL 數據庫客戶端
   MySQL 數據庫服務器
   PHP 支持
   PostgreSQL 數據庫客戶端
   PostgreSQL 數據庫服務器
   Ruby 支持
   SNMP 支持
   TeX 支持
   TurboGear 應用程序框架
   Web 服務器程序引擎
   Xfce
   iSCSI 存儲客戶端
   主框架訪問
   可擴展文件系統
   圖形生成工具
   基於網頁的企業級管理
   備份客戶端
   備份服務器
   大系統性能
   存儲可用性工具
   客戶端管理工具
   開發工具
   彈性存儲
   控制臺互聯網工具
   教育軟件
   智能卡支持
   服務器平臺開發
   桌面平臺開發
   目錄服務器
   短信客戶端支持
   科學記數法支持
   科技寫作
   系統管理
   系統管理工具
   網絡存儲服務器
   虛擬化
   虛擬化客戶端
   虛擬化工具
   虛擬化平臺
   虛擬機代理
   負載平衡器
   身份管理服務器
   遠程桌面客戶端
   高可用性
   高可用性管理
Available Language Groups:
   上索布語支持 [hsb]
   世界語支持 [eo]
   丹麥語支持 [da]
   烏克蘭語支持 [uk]
   烏茲別克語支持 [uz]
   低地撒克遜語支持 [nds]
   佛裏烏裏語支持 [fur]
   俄語支持 [ru]
   保加利亞語支持 [bg]
   信德語支持 [sd]
   克什米爾語支持 [ks]
   克羅地亞語支持 [hr]
   冰島語支持 [is]
   加利西亞語支持 [gl]
   加泰隆語支持 [ca]
   匈牙利語支持 [hu]
   華隆語支持 [wa]
   南 Ndebele 語支持 [nr]
   南索托語支持 [st]
   南非荷蘭語支持 [af]
   卡舒比語支持 [csb]
   盧旺達語支持 [rw]
   盧森堡語支持 [lb]
   印度尼西亞語支持 [id]
   史瓦希裏語支持 [sw]
   哈薩克語支持 [kk]
   國際語支持 [ia]
   土庫曼語支持 [tk]
   土耳其語支持 [tr]
   埃及古語支持 [cop]
   塔加洛語支持 [tl]
   塞爾維亞語支持 [sr]
   夫裏斯蘭語支持 [fy]
   奇卡瓦語支持 [ny]
   奧克西唐語支持 [oc]
   威爾士語支持 [cy]
   宗加語支持 [ts]
   尼泊爾語支持 [ne]
   巴斯克語支持 [eu]
   巴西葡萄牙語支持 [pt_BR]
   布爾吞語支持 [br]
   布爾吞語支持 [nso]
   希利蓋農語支持 [hil]
   希臘語支持 [el]
   德語支持 [de]
   德頓語支持 [tet]
   恰蒂斯加爾語支持 [hne]
   意大利語支持 [it]
   拉丁語支持 [la]
   拉脫維亞語支持 [lv]
   挪威語支持 [nb]
   捷克語支持 [cs]
   斐濟語支持 [fj]
   斯洛伐克語支持 [sk]
   斯洛文尼亞語支持 [sl]
   斯瓦蒂語支持 [ss]
   曼島語支持 [gv]
   梵語支持 [sa]
   毛利語支持 [mi]
   法羅語支持 [fo]
   法語支持 [fr]
   波蘭語支持 [pl]
   波斯語支持 [fa]
   泰斯文那語支持 [tn]
   愛爾蘭語支持 [ga]
   愛沙尼亞語支持 [et]
   瑞典語支持 [sv]
   白俄羅斯語支持 [be]
   蓋爾語支持 [gd]
   祖魯語支持 [zu]
   科薩語支持 [xh]
   立陶宛語支持 [lt]
   索馬裏語支持 [so]
   羅馬尼亞語支持 [ro]
   芬蘭語支持 [fi]
   英國英語支持 [en_GB]
   荷蘭語支持 [nl]
   菲律賓語支持 [fil]
   薩丁尼亞語支持 [sc]
   葡萄牙語支持 [pt]
   蒙古語支持 [mn]
   藏語支持 [bo]
   西班牙語支持 [es]
   越南語支持 [vi]
   阿塞拜疆語支持 [az]
   阿爾巴尼亞語支持 [sq]
   阿馬茲格語支持 [ber]
   馬其頓語支持 [mk]
   馬爾他語支持 [mt]
   馬來語支持 [ms]
   馬達加斯加語支持 [mg]
完成
代碼

# grouplist用法

[root@localhost Python-3.7.2]# yum groupinstall ‘開發工具‘

## 補充 環境變量問題

# 將python加入PATH環境變量
[root@localhost bin]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin/usr/local/Python3.7.2/bin/

# 將Python路徑加到環境變量中(臨時修改) [root@localhost ~]# PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin:/usr/local/Python3.7.2/bin/ [root@localhost ~]# echo $PATH /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin:/usr/local/Python3.7.2/bin/ [root@localhost ~]#

# 將Python路徑加到環境變量中(永久修改) root@localhost ~]# vim /etc/profile # 打開配置文件 將 PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin:/usr/local/Python3.7.2/bin/ 加到最後將一行並保存

Linux基礎_軟件包管理