1. 程式人生 > 實用技巧 >rpm&yum常用的命令以及systemd初始化程序

rpm&yum常用的命令以及systemd初始化程序

RPM(紅帽軟體包管理器)

常用的RPM軟體包命令如下:

安裝軟體的命令格式                rpm -ivh filename.rpm 
升級軟體的命令格式                rpm -Uvh filename.rpm
解除安裝軟體的命令格式                rpm -e filename.rpm
查詢軟體描述資訊的命令格式         rpm -qpi filename.rpm
列出軟體檔案資訊的命令格式         rpm -qpl filename.rpm
查詢檔案屬於哪個RPM的命令格式      rpm -qf  filename.rpm

注意:這裡的filename.rpm為要進行安裝的紅帽軟體包


其中使用rpm安裝nfs-utils包的命令如下:

rpm -ivh nfs-utils-2.3.3-14.el8.x86_64.rpm


命令的執行結果為:

warning: nfs-utils-2.3.3-14.el8.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY

Verifying... ################################# [100%]

Preparing... ################################# [100%]

package nfs-utils-1:2.3.3-14.el8.x86_64 is already installed


其他的命令就不多在此進行演示了,上面的命令只是rpm中的部分命令,如果想要檢視rpm中可執行的命令,請用如下的命令來進行檢視:

man rpm 或 rpm --help 

YUM軟體倉庫(重點)

為什麼要出現YUM技術?

由於RPM可以幫助使用者查詢軟體相關的依賴關係,並且也能夠協助使用者完成日常的軟體安裝的工作。但是有一些大型的軟體可能與數十個程式都有著依賴的關係。而我們此時再用RPM來一個一個安裝相關的依賴包就顯得有些繁瑣了。因此,為了解決這個問題,YUM技術應運而生。


注意:由於本人做實驗的系統為RedHat 8 版本的系統,在原先的7版本系統中,YUM軟體倉庫使用的是yum v3 版本,其中所使用的命令為:yum。而現在的8版本系統中,YUM軟體倉庫使用的是yum v4 版本,其中所使用的命令為:dnf(yum)。


YUM軟體倉庫的技術拓撲圖如下:

! [] ("https://www.linuxprobe.com/wp-content/uploads/2015/01/yum.png")

其中,客戶端主機需要配置repo檔案,在本地設定好伺服器端配置的YUM源後,就可以通過伺服器端的YUM倉庫來下載自己所需要的軟體。


常見的Yum命令如下

yum repolist all                            列出所有的倉庫
yum list all                                列出倉庫中所有軟體包
yum info 軟體包名稱                          檢視軟體包資訊
yum install 軟體包名稱                       安裝軟體包
yum reinstall 軟體包名稱                     重新安裝軟體包
yum update  軟體包名稱                       升級軟體包
yum remove  軟體包名稱                       移除軟體包
yum clean all                               清除所有倉庫的快取
yum check-update                            檢查可更新的軟體包
yum grouplist                               檢視系統中已經安裝的軟體包組
yum groupinstall 軟體包組                    安裝指定的軟體包組
yum groupremove 軟體包組                     移除指定的軟體包組
yum groupinfo   軟體包組                     查詢指定的軟體包組資訊

其中使用yum安裝/刪除/檢視資訊vsftpd的命令如下

yum install vsftpd
yum remove vsftpd
yum info vsftpd

其中安裝時的顯示資訊如下:

Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Last metadata expiration check: 0:03:31 ago on Sat 14 Nov 2020 02:12:20 AM EST.
Dependencies resolved.
============================================================================================================================================================================================================================================
 Package                                                Arch                                                   Version                                                      Repository                                                 Size
============================================================================================================================================================================================================================================
Installing:
 vsftpd                                                 x86_64                                                 3.0.3-28.el8                                                 AppStream                                                 180 k

Transaction Summary
============================================================================================================================================================================================================================================
Install  1 Package

Total size: 180 k
Installed size: 356 k
Is this ok [y/N]: y       --代表是否進行安裝?   y為是,n為否
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                                                                                    1/1 
  Installing       : vsftpd-3.0.3-28.el8.x86_64                                                                                                                                                                                         1/1 
  Running scriptlet: vsftpd-3.0.3-28.el8.x86_64                                                                                                                                                                                         1/1 
  Verifying        : vsftpd-3.0.3-28.el8.x86_64                                                                                                                                                                                         1/1 
Installed products updated.

Installed:
  vsftpd-3.0.3-28.el8.x86_64                                                                                                                                                                                                          
Complete! 

至於其他命令的資訊,在這裡就不過多進行展示。


注意: yum命令並不只是上面所說的幾種。同樣,如果要想獲取更多的命令,請通過man命令或--help長引數來進行檢視(-h短引數進行檢視也可以)


systemd初始化程序( systemd 執行目標)

systemd初始化程序指的是什麼意思?


當linux系統進行開機時,首先先從BIOS開始,然後進行Boot Loader,在後來去載入系統的核心,然後核心進行初始化,最後啟動初始化的程序。那麼,初始化程序作為Linux系統第一個程序,他需要完成Linux系統中相關的初始化操作,最終為使用者提供合適的工作環境。

通俗一點來講就是,當linux系統進行開機時,它會去載入設定好的初始化程序,根據初始化程序的不同,它就會為使用者提供不同的工作環境。


systemd初始化程序的種類如下:


System V init執行級別	    systemd目標名稱	        systemd 目標作用

        0	                poweroff.target	            關機
        1	                rescue.target	         單使用者模式
        2	                multi-user.target	    多使用者的文字介面
        3	                multi-user.target	    多使用者的文字介面
        4	                multi-user.target	    多使用者的文字介面
        5	                graphical.target	    多使用者的圖形介面
        6	                reboot.target	            重啟
    emergency	            emergency.target	      救援模式 

其中,linux系統(如果剛開始選擇安裝linux系統時選擇的模式為:Server with GUI 模式的話,那麼此係統預設的初始化程序為: graphical.target 執行級別為5


那麼,問題來了,我們可不可以把系統預設的執行目標(初始化程序)修改為多使用者,無圖形模式呢? 命令如下:

ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target

其中:multi-user.target 為多使用者的文字介面模式 default.target 為系統預設的執行模式


那麼,這條命令執行之後,當你重新啟動Linux系統時,你就會發現你就進不去圖形介面了。只能在文字介面進行操作。

同樣,如果你將reboot.target設定成了系統預設的執行模式的話,那麼當你重新啟動Linux系統時,你就會發現系統一直處於重啟狀態,什麼都進不去。


RHEL8系統常用的systemctl管理服務命令

當我們在RHEL系統配置服務後,如何進行服務的啟動,停止,重啟等操作呢?這時,我們就可以用到systemctl管理服務命令了。


systemctl管理服務命令的命令格式如下:

 表1-4      服務的啟動、重啟、停止、過載、檢視狀態等常用命令

老系統命令(RHEL6版本之前)	          新系統命令(RHEL7版本之後)	   作用
service foo start	        systemctl start httpd	        啟動服務
service foo restart	      systemctl restart httpd	        重啟服務
service foo stop	        systemctl stop httpd	        停止服務
service foo reload	      systemctl reload httpd	      重新載入配置檔案(不終止服務)
service foo status	      systemctl status httpd	      檢視服務狀態

表1-5    服務開機啟動、不啟動、檢視各級別下服務啟動狀態等常用命令

老系統命令	               新系統命令	                    作用
chkconfig foo on	systemctl enable httpd	            開機自動啟動
chkconfig foo off	systemctl disable httpd	            開機不自動啟動
chkconfig foo	    systemctl is-enabled httpd	        檢視特定服務是否為開機自啟動
chkconfig --list	systemctl list-unit-files --type=httpd	檢視各個級別下服務的啟動與禁用情況

在這裡對以上的管理服務命令就不過多的進行演示。因為在後面配置服務當中幾乎都會用到這些命令。


最後,本人學習及參考的用書為: Linux就該這麼學