linux軟件管理

linux軟件管理
什麼是軟件?
軟件:Software是一系列按照特定順序組織的計算機數據和指令的集合。一般來講軟件被劃分爲系統軟件、應用軟件和介於這兩者之間的中間件。

不同的系統平臺指令不同,因此軟件也不同,所以在不同類別的系統中,軟件並不能通用,比如微軟系統中的exe安裝包,一般無法在linux系統中安裝

在Linux界有兩大常見的軟件安裝方式:DPKG、RPM
dpkg最早由debian linux社區開發,B2D和ubuntu主要用這種安裝方式
rpm最早是有red hat研發,fedora、CentOS、SuSE等知名的開發商都是用該種方式

RPM介紹:
RedHat Package Manager 是以一種數據庫記錄的方式來將所需要的軟件安裝到 Linux 系統的一套管理機制。

特性:
在通用平臺上將軟件編譯好,打包成爲 RPM 機制的包 [安裝環境已定製化]。記錄並檢查軟件安裝的依賴包,安裝的時候就將該軟件的信息整個寫入 RPM 的數據庫中,供後續查詢、升級和卸載。

RPM軟件包文件採用的軟件名稱組合 name-version-release.architecture的命名方式進行命名
httpd-2.4.6-88.el7.x86_64.rpm [軟件名-版本號-編譯次數.發行商版本.處理器平臺]
name:描述其內容的一個或多個單詞 (httpd)
version: 軟件的原始版本號 (2.4.6)
release:在原始的發行版本號基礎上,被新的軟件開發商編譯的次數及新的命名(88.el7)
arch:該軟件可運行的處理機器架構 (x86_64);"noarch"表示不限定架構
(目前常見的幾種處理器硬件架構:x86、arm、PowerPC)

RPM使用:
安裝包下載:
本地軟件包:
[root@df_rhel ~]# mount /dev/sr0 /media/
[root@df_rhel ~]# cd /media/Packages/
[root@df_rhel Packages]# ls | wc -l
5100

網絡軟件包:
http://rpmfind.net/

wget http://rpmfind.net/linux/fedora-secondary/releases/30/Everything/s390x/os/Packages/c/cowsay-3.04-12.fc30.noarch.rpm

軟件安裝:
#rpm -ivh package_name --可以同時安裝多個軟件,軟件包可以下載到本地,也可以是通過網絡安裝
-i:install
-v:顯示指令的執行過程
-h:顯示安裝進度
--nodeps 忽略包依賴關係
--force 強制安裝,實現降級或重裝
--replacepkgs 替換原有安裝

查詢
#rpm -q PACKGE_NAME 查詢包是否安裝
-qa 查詢所有已安裝的包
[root@df_rhel ~]# rpm -qa cowsay
cowsay-3.04-12.fc30.noarch
[root@df_rhel ~]# rpm -qa telnet
telnet-0.17-64.el7.x86_64

-qi 查詢指定包的說明信息 (已安裝的包)
[root@df_rhel ~]# rpm -qi cowsay
Name : cowsay
Version : 3.04
Release : 12.fc30
Architecture: noarch
Install Date: Sat 18 May 2019 11:34:15 AM EDT
Group : Unspecified
Size : 78106
License : GPLv3+
Signature : RSA/SHA256, Thu 07 Feb 2019 12:39:22 AM EST, Key ID ef3c111fcfc659b9
Source RPM : cowsay-3.04-12.fc30.src.rpm
........

-ql 查詢指定包安裝後生成的文件列表
[root@df_rhel ~]# rpm -ql telnet
/usr/bin/telnet
/usr/share/doc/telnet-0.17
/usr/share/doc/telnet-0.17/README
/usr/share/man/man1/telnet.1.gz

-qc 查詢指定包安裝後的配置文件
[root@df_rhel ~]# rpm -qc httpd

-qd 查詢指定包安裝後的幫助文件
[root@df_rhel ~]# rpm -qd cowsay
/usr/share/doc/cowsay/ChangeLog
/usr/share/doc/cowsay/LICENSE
/usr/share/doc/cowsay/README
/usr/share/man/man1/cowsay.1.gz
/usr/share/man/man1/cowthink.1.gz

-qf /path/file 查詢指定的文件是由哪個包安裝產生的
[root@df_rhel ~]# rpm -qf /usr/share/doc/cowsay/ChangeLog
cowsay-3.04-12.fc30.noarch

-qpi 查詢未安裝包的信息
[root@df_rhel ~]# rpm -qpi cowsay-3.04-12.fc30.noarch.rpm

-qpl 查詢未安裝包在安裝後生成的文件列表
[root@df_rhel ~]# rpm -qpl cowsay-3.04-12.fc30.noarch.rpm

RPM默認的文件安裝路徑:
/usr/bin 一些可執行文件
/usr/lib 一些程序使用的動態函數庫
/usr/share/doc 一些基本的軟件使用手冊與幫助文檔
/usr/share/man 一些man page文件

升級
#rpm -Uvh 如果有舊版版則升級,否則安裝
#rpm -Fvh 如果有舊版本則升級,否則退出
[root@df_rhel ~]# rpm -qa telnet
[root@df_rhel ~]# rpm -Fvh telnet-0.17-64.el7.x86_64.rpm
warning: telnet-0.17-64.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
[root@df_rhel ~]# rpm -Uvh telnet-0.17-64.el7.x86_64.rpm
warning: telnet-0.17-64.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:telnet-1:0.17-64.el7 ################################# [100%]

卸載
#rpm -e PACKGE_NAME
[root@df_rhel ~]# rpm -e telnet
[root@df_rhel ~]# rpm -qa telnet

重建rpm數據庫
#rpm --rebuilddb 重建數據庫
#rpm --initdb 初始化數據庫,沒有則建立

如何查看當前系統版本及升級系統版本
RHEL7.5:
[root@df_rhel ~]# uname -a
Linux df_rhel 3.10.0-862.el7.x86_64 #1 SMP Wed Mar 21 18:14:51 EDT 2018 x86_64 x86_64 x86_64 GNU/Linux

RHEL8.0:
[root@myth_8 ~]# uname -a
Linux myth_8.0 4.18.0-80.el8.x86_64 #1 SMP Wed Mar 13 12:02:46 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

RHEL7.5:
[root@df_rhel ~]# more /etc/os-release
NAME="Red Hat Enterprise Linux Server"
VERSION="7.5 (Maipo)"
ID="rhel"
ID_LIKE="fedora"
VARIANT="Server"
VARIANT_ID="server"
VERSION_ID="7.5"
PRETTY_NAME="Red Hat Enterprise Linux Server 7.5 (Maipo)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:redhat:enterprise_linux:7.5:GA:server"
HOME_URL="https://www.redhat.com/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"

REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 7"
REDHAT_BUGZILLA_PRODUCT_VERSION=7.5
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="7.5"

RHEL8.0:
[root@myth_8 ~]# cat /etc/os-release
NAME="Red Hat Enterprise Linux"
VERSION="8.0 (Ootpa)"
ID="rhel"
ID_LIKE="fedora"
VERSION_ID="8.0"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Red Hat Enterprise Linux 8.0 (Ootpa)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:redhat:enterprise_linux:8.0:GA"
HOME_URL="https://www.redhat.com/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"

REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 8"
REDHAT_BUGZILLA_PRODUCT_VERSION=8.0
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="8.0"

RHEL7.5:
[root@df_rhel ~]# rpm -qa kernel
kernel-3.10.0-862.el7.x86_64

RHEL8.0:
[root@myth_8 ~]# rpm -qa kernel
kernel-4.18.0-80.el8.x86_64

升級內核:
[root@df_rhel ~]# rpm -ivh kernel-4.18.0-80.el8.x86_64.rpm

YUM介紹
Yellow dog Update Modified (yellow dog是Linux的一個發行版本)
YUM是Fedora、RedHat、CentOS中的前端軟件包管理器,使用Python編寫

YUM原理:
使用一個倉庫管理所有應用程序,通過程序間關係計算出軟件的依賴關係進行軟件安裝、升級、刪除、查詢等操作。
通過一個或多個配置文件來描述倉庫的網絡地址,通過http或ftp協議從倉庫獲得信息,下載相關軟件包

YUM基本操作:
配置本地YUM源
配置文件 /etc/yum.repos.d/*.repo ,該目錄下所有以.repo結尾的文件都是yum的有效配置文件
配置文件主要參數:
[rhel7]
--倉庫id
name=qm
--倉庫名稱
baseurl=file:///media
--倉庫地址 ,可以是本地目錄也可以是網絡上的路徑file表示使用本地路徑,http和ftp表示使用網絡路徑
gpgcheck=0
--是否校驗倉庫內軟件包,0不校驗,1校驗,如果校驗需要指明校驗密鑰
enabled=1
--是否啓用該yum倉庫,0不啓用,1啓用

priority=1 (只有一個倉庫可以不用設置)
--設置倉庫優先級,數字越小越優

#yum list 查看倉庫軟件列表

#yum makecache 生成軟件倉庫緩存

配置網絡yum源:
本地yum源可能有侷限性,當本地的yum源無法滿足軟件安裝需求的時候,可以選擇網絡yum源,前提是主機必須能訪問外網
https://opsx.alibaba.com/

linux軟件管理

[root@df_rhel ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

[root@df_rhel ~]# cat /etc/yum.repos.d/epel.repo

yum代理:
如果主機不方便訪問外部網絡,可以通過內部可上網的主機做代理
proxy=https://www.ahdifu.com:8080 前面爲代理地址或域名,後面爲端口

proxy_username=myth 代理服務器的用戶名

proxy_password=ahdifu.com 代理服務器的密碼

YUM使用:
yum安裝軟件
#yum -y install PACKGE_NAME ---y 自動應答yes
[root@df_rhel ~]# yum -y install sl

#yum -y groupinstall PACKGE_GROUP_NAME
[root@df_rhel ~]# yum -y groupinstall “KDE Desktop”

yum查詢
#yum list 列出yum倉庫中的軟件列表
#yum list installed 列出已安裝的
[root@df_rhel ~]# yum list installed | wc -l

#yum list updates 列出可以升級的

#yum grouplist 列出包組

#yum info PACKGE_NAME 查看軟件包信息
[root@df_rhel ~]# yum info cowsay
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-
: manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
Installed Packages [該軟件是已經安裝好的]
Name : cowsay [軟件的名稱]
Arch : noarch [軟件的編譯架構]
Version : 3.04 [軟件的源版本]
Release : 12.fc30 [發佈的版本]
Size : 76 k [軟件的總大小]
Repo : installed
Summary : Configurable speaking/thinking cow
URL : https://github.com/tnalpgge/rank-amateur-cowsay
License : GPLv3+ [授權]
.......

yum卸載軟件
#yum remove | erase PACKGE_NAME
[root@df_rhel ~]# yum -y remove sl

yum升級軟件
#yum update

YUM緩存
生成緩存 #yum makecache
清空緩存 #yum clean all

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章