全國(guó)咨詢(xún)/投訴熱線:400-618-4000

首頁(yè)技術(shù)文章正文

systemctl命令怎么用與防火墻的相關(guān)操作介紹[linux云計(jì)算+運(yùn)維開(kāi)發(fā)]

更新時(shí)間:2020-03-20 來(lái)源:黑馬程序員 瀏覽量:

自有服務(wù),即不需要用戶(hù)獨(dú)立去安裝的軟件的服務(wù),而是當(dāng)系統(tǒng)安裝好之后就可以直接使用的服務(wù)(內(nèi)置)

學(xué)習(xí)目標(biāo)
1、了解systemctl命令用途
2、掌握使用systemctl開(kāi)啟,關(guān)閉,重啟服務(wù)
3、了解常見(jiàn)自有服務(wù)ntpd,firewalld,crond的作用
4、掌握ntpdate時(shí)間同步原理與實(shí)現(xiàn)
5、掌握防火墻的相關(guān)操作(添加和刪除簡(jiǎn)單規(guī)則,開(kāi)啟,關(guān)閉防火墻)
6、了解源碼包和二進(jìn)制包的區(qū)別
7、掌握rpm包的卸載、安裝以及更新操作
8、了解計(jì)劃任務(wù)的作用
9、掌握計(jì)劃任務(wù)的編輯



本文目錄

一、自有服務(wù)概述

二、systemctl管理服務(wù)命令

1、顯示服務(wù)

2、查看啟動(dòng)和停止服務(wù)

3、服務(wù)持久化

三、常用自有服務(wù)(ntp,firewalld,crond)

1、ntp時(shí)間同步服務(wù)

2、firewalld防火墻

1)什么是防火墻

2)傳統(tǒng)Linux防火墻

3、firewalld防火墻的概念

1)區(qū)域

2)運(yùn)行模式和永久模式

4、firewalld防火墻的配置

1)查看,開(kāi)啟和停止firewalld服務(wù)

2) 管理firewall配置

5、計(jì)劃任務(wù)crontab

1)計(jì)劃任務(wù)的作用

2)查看計(jì)劃任務(wù)

3)編輯計(jì)劃任務(wù)(重點(diǎn))

4)幾個(gè)小案例

5)擴(kuò)展

四、Linux軟件包

1、軟件包概述

2、如何獲取rpm包

3、從光盤(pán)獲取

3.1 虛擬機(jī)中加載光盤(pán)

3.2 使用 # lsblk(list block devices)或者df -T 查看塊狀設(shè)備的信息

3.3 進(jìn)入/run/media/root/CentOS 7 x86_64/Packages目錄

4、查詢(xún)某個(gè)軟件安裝情況

5、卸載某個(gè)軟件

6、安裝某個(gè)軟件

7、更新某個(gè)軟件

8、rpm擴(kuò)展

8.1依賴(lài)關(guān)系

8.2 查看文件所屬的包名(實(shí)用)

8.3查詢(xún)軟件安裝完成后,生成了哪些文件

9、擴(kuò)展:光盤(pán)的掛載和解掛



一、自有服務(wù)概述

服務(wù)是一些特定的進(jìn)程,自有服務(wù)就是系統(tǒng)開(kāi)機(jī)后就自動(dòng)運(yùn)行的一些進(jìn)程,一旦客戶(hù)發(fā)出請(qǐng)求,這些進(jìn)程就自動(dòng)為他們提供服務(wù),windows系統(tǒng)中,把這些自動(dòng)運(yùn)行的進(jìn)程,稱(chēng)為”服務(wù)“。

舉例:當(dāng)我們使用SSH客戶(hù)端軟件連接linux的時(shí)候,我們的服務(wù)器為什么會(huì)對(duì)連接做出響應(yīng)?是因?yàn)镾SH服務(wù)開(kāi)機(jī)就自動(dòng)運(yùn)行了。

所謂自有服務(wù),簡(jiǎn)單來(lái)說(shuō),可以理解為L(zhǎng)inux系統(tǒng)開(kāi)機(jī)自動(dòng)運(yùn)行的服務(wù)(程序)。

我們?nèi)绾喂芾磉@些自有服務(wù)呢?推薦了解linux云計(jì)算+運(yùn)維開(kāi)發(fā)課程。

二、systemctl管理服務(wù)命令

在Centos7之前,通過(guò)service 和 chkconfig兩個(gè)命令來(lái)管理服務(wù)

service: 負(fù)責(zé)啟動(dòng),停止服務(wù),顯示服務(wù)狀態(tài)

chkconfig: 指定服務(wù)是否開(kāi)機(jī)啟動(dòng)

從Centos7開(kāi)始,統(tǒng)一使用systemctl來(lái)管理服務(wù), systemctl同時(shí)具有service和chkconfig命令的功能。


1、顯示服務(wù)

命令:systemctl

作用:管理服務(wù)

語(yǔ)法:#systemctl   [選項(xiàng)]

選項(xiàng):
list-units --type service --all:列出所有服務(wù)(包含啟動(dòng)的和沒(méi)啟動(dòng)的)

list-units --type service:列出所有啟動(dòng)的服務(wù)

用法一:systemctl list-units --type service --all 不加具體服務(wù)名
示例代碼:
#systemctl list-units --type service --all
含義:列出所有服務(wù),包括已運(yùn)行的和沒(méi)有運(yùn)行的空格可以翻頁(yè),q退出
linux自有服務(wù)2.1.1


用法二:systemctl list-units --type service 不加具體服務(wù)名
示例代碼:
#systemctl list-units --type service
含義:列出已運(yùn)行的服務(wù)空格可以翻頁(yè),q退出

linux自有服務(wù)2.1.2

2、查看啟動(dòng)和停止服務(wù)

命令:systemctl

作用:管理服務(wù)

語(yǔ)法:#systemctl   [選項(xiàng)]  服務(wù)名

選項(xiàng):

     status:檢查指定服務(wù)的運(yùn)行狀況

     start:?jiǎn)?dòng)指定服務(wù)

    stop:停止指定服務(wù)

    restart:重啟指定服務(wù)

    reload:重新加載指定服務(wù)的配置文件(并非所有服務(wù)都支持reload,通常使用restart)

用法三:systemctl 選項(xiàng) 服務(wù)名
示例代碼:
#systemctl status crond
含義:查看crond服務(wù)的狀態(tài)

linux自有服務(wù)2.2.1

Active:active(running) 表示當(dāng)前crond服務(wù)是運(yùn)行狀態(tài)。

用法四:systemctl 選項(xiàng) 服務(wù)名
示例代碼:
#systemctl stop crond
含義:停止crond服務(wù)

linux自有服務(wù)2.2.2

Inactive,表示crond服務(wù)當(dāng)前是停止?fàn)顟B(tài)

用法五:systemctl 選項(xiàng) 服務(wù)名
示例代碼:
#systemctl start crond
含義:?jiǎn)?dòng)crond服務(wù)

linux自有服務(wù)2.2.3

用法六:systemctl 選項(xiàng) 服務(wù)名
示例代碼:
#systemctl restart crond
含義:重啟crond服務(wù)

#systemctl reload crond
含義:重新加載crond服務(wù)配置文件
linux自有服務(wù)2.2.4

3、服務(wù)持久化

所謂服務(wù)持久化,就是服務(wù)在開(kāi)機(jī)的時(shí)候,是否自動(dòng)啟動(dòng)。

命令:systemctl

作用:管理服務(wù)

語(yǔ)法:#systemctl   [選項(xiàng)]  服務(wù)名

選項(xiàng): enable:指定服務(wù)開(kāi)機(jī)自動(dòng)啟動(dòng)

            disable:取消服務(wù)開(kāi)機(jī)自動(dòng)啟動(dòng)

用法七:systemctl 選項(xiàng) 服務(wù)名
示例代碼:
#systemctl disable crond
含義:取消crond服務(wù)開(kāi)機(jī)啟動(dòng)

linux自有服務(wù)2.3.1
用法八:systemctl 選項(xiàng) 服務(wù)名
示例代碼:
#systemctl disable crond
含義:指定crond服務(wù)開(kāi)機(jī)啟動(dòng)

linux自有服務(wù)2.3.2

systemctl參數(shù)總結(jié)
linux自有服務(wù)2.3.3

三、常用自有服務(wù)(ntp,firewalld,crond)

ntpd:用于同步計(jì)算機(jī)的系統(tǒng)時(shí)間的服務(wù)
firewalld:防火墻服務(wù)
|crond:計(jì)劃任務(wù)服務(wù)

1、ntp時(shí)間同步服務(wù)

NTP是網(wǎng)絡(luò)時(shí)間協(xié)議(Network Time Protocol),它是用來(lái)同步網(wǎng)絡(luò)中各個(gè)計(jì)算機(jī)的時(shí)間的協(xié)議。

工作場(chǎng)景:

公司開(kāi)發(fā)了一個(gè)電商網(wǎng)站,由于訪問(wèn)量很大,網(wǎng)站后端由100臺(tái)服務(wù)器組成集群。50臺(tái)負(fù)責(zé)接收訂單,50臺(tái)負(fù)責(zé)安排發(fā)貨,接收訂單的服務(wù)器需要記錄用戶(hù)下訂單的具體時(shí)間,把數(shù)據(jù)傳給負(fù)責(zé)發(fā)貨的服務(wù)器,由于100臺(tái)服務(wù)器時(shí)間各不相同,記錄的時(shí)間經(jīng)常不一致,甚至?xí)霈F(xiàn)下單時(shí)間是明天,發(fā)貨時(shí)間是昨天的情況。

1)NTP同步服務(wù)器原理

標(biāo)準(zhǔn)時(shí)間是哪里來(lái)的?

現(xiàn)在的標(biāo)準(zhǔn)時(shí)間是由原子鐘報(bào)時(shí)的國(guó)際標(biāo)準(zhǔn)時(shí)間UTC(Universal Time Coordinated,世界協(xié)調(diào)時(shí)),所以NTP獲得UTC的時(shí)間來(lái)源可以是原子鐘、天文臺(tái)、衛(wèi)星,也可以從Internet上獲取。

在NTP中,定義了時(shí)間按照服務(wù)器的等級(jí)傳播,Stratum層的總數(shù)限制在15以?xún)?nèi)。

工作中,通常我們會(huì)直接使用各個(gè)組織提供的,現(xiàn)成的NTP服務(wù)器。

linux自有服務(wù)3.1.1

2)到哪里去找NPT服務(wù)器

        NTP授時(shí)網(wǎng)站:http://www.ntp.org.cn/pool.php

linux自有服務(wù)3.1.2

3)時(shí)間同步操作

同步服務(wù)器時(shí)間方式有2 個(gè):一次性同步手動(dòng)同步、通過(guò)服務(wù)自動(dòng)同步。

手動(dòng)同步

用法一:ntpdate 時(shí)間服務(wù)器IP
示例代碼:
#ntpdate 120.25.108.11
含義:從服務(wù)器120.25.108.11同步標(biāo)準(zhǔn)網(wǎng)絡(luò)時(shí)間到服務(wù)器(120.25.108.11服務(wù)器由阿里云提供,可以從http://www.ntp.org.cn/pool.php網(wǎng)站獲取)
注意:從網(wǎng)絡(luò)同步時(shí)間,要確保自己的服務(wù)器可以訪問(wèn)互聯(lián)網(wǎng)

linux自有服務(wù)3.1.3.

錯(cuò)誤信息:no servers can be used

含義:服務(wù)器不可用,這里的服務(wù)器是指網(wǎng)絡(luò)上的時(shí)間服務(wù)器,不可用,不代表是對(duì)方服務(wù)器有問(wèn)題,也有可能是你自己的服務(wù)器網(wǎng)絡(luò)不通,無(wú)法連接到網(wǎng)絡(luò)上的時(shí)間服務(wù)器。

自動(dòng)同步

用法二:?jiǎn)?dòng)ntpd服務(wù),并配置為開(kāi)機(jī)啟動(dòng)
示例代碼:
#systemctl start ntpd
#systemctl enable ntpd
含義:?jiǎn)?dòng)ntpd服務(wù),并配置為開(kāi)機(jī)啟動(dòng),服務(wù)啟動(dòng)后,系統(tǒng)會(huì)自動(dòng)同步網(wǎng)絡(luò)時(shí)間
注意:從網(wǎng)絡(luò)同步時(shí)間,要確保自己的服務(wù)器可以訪問(wèn)互聯(lián)網(wǎng)

linux自有服務(wù)3.1.3.2

問(wèn)題1:?jiǎn)?dòng)ntpd服務(wù)后,是不是時(shí)間就自動(dòng)同步了?

啟動(dòng)后就自動(dòng)同步了

問(wèn)題2:需不需要讓ntpd服務(wù),開(kāi)機(jī)自動(dòng)運(yùn)行?

需要

ntpd服務(wù)配置文件位置  /etc/ntp.conf

2、firewalld防火墻

1)什么是防火墻

防火墻:防范一些網(wǎng)絡(luò)攻擊。有軟件防火墻、硬件防火墻之分。

linux自有服務(wù)3.2.1.1

防火墻選擇讓正常請(qǐng)求通過(guò),從而保證網(wǎng)絡(luò)安全性。

Windows防火墻:

linux自有服務(wù)3.2.1.2

2)傳統(tǒng)Linux防火墻

linux自有服務(wù)3.2.2

3、firewalld防火墻的概念

1)區(qū)域

CentOS6x中防火墻叫做iptables

CentOS7.x 中默認(rèn)使用的防火墻是firewalld

firewalld增加了區(qū)域的概念,所謂區(qū)域是指,firewalld**預(yù)先準(zhǔn)備了幾套防火墻策略的集合**,類(lèi)似于**策略的模板**,用戶(hù)可以根據(jù)需求選擇區(qū)域。

常見(jiàn)區(qū)域及相應(yīng)策略規(guī)則


區(qū)域       默認(rèn)策略

trusted     允許所有數(shù)據(jù)包
home       拒絕流入的流量,除非與流出的流量相關(guān),允許ssh,mdns,ippclient,amba-client,dhcpv6-client服務(wù)通過(guò)
internal    等同于home
work        拒絕流入的流量,除非與流出的流量相關(guān),允許ssh,ipp-client,dhcpv6-client服務(wù)通過(guò)
public      拒絕流入的流量,除非與流出的流量相關(guān),允許ssh,dhcpv6-client服務(wù)通過(guò)
external   拒絕流入的流量,除非與流出的流量相關(guān),允許ssh服務(wù)通過(guò)
dmz         拒絕流入的流量,除非與流出的流量相關(guān),允許ssh服務(wù)通過(guò)
block       拒絕流入的流量,除非與流出的流量相關(guān),非法流量采取拒絕操作
drop        拒絕流入的流量,除非與流出的流量相關(guān),非法流量采取丟棄操作

2)運(yùn)行模式和永久模式

運(yùn)行模式:此模式下,配置的防火墻策略立即生效,但是不寫(xiě)入配置文件

永久模式:此模式下,配置的防火墻策略寫(xiě)入配置文件,但是需要reload重新加載才能生效。
firewall默認(rèn)采用運(yùn)行模式

4、firewalld防火墻的配置

1)查看,開(kāi)啟和停止firewalld服務(wù)

命令:systemctl

作用:管理服務(wù)

語(yǔ)法:#systemctl   [選項(xiàng)]  firewalld

選項(xiàng):
status:檢查指定服務(wù)的運(yùn)行狀況

start:?jiǎn)?dòng)指定服務(wù)

stop:停止指定服務(wù)

restart:重啟指定服務(wù)

reload:重新加載指定服務(wù)的配置文件(并非所有服務(wù)都支持reload,通常使用restart)


使用systemctl來(lái)管理firewalld的服務(wù),具體命令前面已經(jīng)講過(guò),只是服務(wù)名換成了firewalld,這里不再贅述。

2) 管理firewall配置

命令:firewall-cmd

作用:管理firewall具體配置

語(yǔ)法:#firewall-cmd  [參數(shù)選項(xiàng)1] ....[參數(shù)選項(xiàng)n]

常用選項(xiàng):  

linux自有服務(wù)3.4.1.1

①查看默認(rèn)使用的區(qū)域

用法一:firewall-cmd 選項(xiàng)
示例代碼:
#firewall-cmd --get-default-zone
含義:查看默認(rèn)使用區(qū)域,當(dāng)前默認(rèn)使用區(qū)域?yàn)閜ublic
linux自有服務(wù)3.4.2.1

②查看所有可用區(qū)域

用法二:firewall-cmd 選項(xiàng)
示例代碼:
#firewall-cmd --get-zones
含義:查看所有可用區(qū)域
linux自有服務(wù)3.4.2.2

③列出當(dāng)前使用區(qū)域配置

用法三:firewall-cmd 選項(xiàng)
示例代碼:
#firewall-cmd --list-all
含義:查看所有可用區(qū)域

linux自有服務(wù)3.4.2.3

④列出所有區(qū)域的配置

用法四:firewall-cmd 選項(xiàng)
示例代碼:
#firewall-cmd --list-all-zones
含義:查看所有可用區(qū)域

linux自有服務(wù)3.4.2.4

⑤添加允許通過(guò)的服務(wù)或端口

用法五:firewall-cmd 選項(xiàng)
示例代碼:
#firewall-cmd --zone=public --add-port=1024/tcp
含義:在public區(qū)域,添加允許tcp協(xié)議的1024端口通過(guò)的規(guī)則

#firewall-cmd --zone=public --add-service=ftp
含義:在public區(qū)域,添加允許ftp服務(wù)通過(guò)的規(guī)則
linux自有服務(wù)3.4.2.5

⑥去掉允許通過(guò)的服務(wù)或端口

用法五:firewall-cmd 選項(xiàng)
示例代碼:
#firewall-cmd --zone=public --remove-port=1024/tcp
含義:在public區(qū)域,去掉允許tcp協(xié)議的1024端口通過(guò)的規(guī)則

#firewall-cmd --zone=public --remove-service=ftp
含義:在public區(qū)域,去掉允許ftp服務(wù)通過(guò)的規(guī)則
linux自有服務(wù)3.4.2.5

⑦永久模式參數(shù)permaent

用法七:firewall-cmd 選項(xiàng)
示例代碼:
#firewall-cmd --permanent --zone=public --add-port=1024/tcp
含義:在public區(qū)域,使用permanent參數(shù),永久添加允許1024端口通過(guò)的規(guī)則

⑧重新加載配置reload

用法七:firewall-cmd 選項(xiàng)
示例代碼:
#firewall-cmd --reload
含義:重新加載配置

linux自有服務(wù)3.4.2.8

5、計(jì)劃任務(wù)crontab

1)計(jì)劃任務(wù)的作用

作用:操作系統(tǒng)不可能24 小時(shí)都有人在操作,有些時(shí)候想在指定的時(shí)間點(diǎn)去執(zhí)行任務(wù)(例如:每天凌晨 2 點(diǎn)去重新啟動(dòng)Apache),此時(shí)不可能真有人每天夜里 2 點(diǎn)去執(zhí)行命令,這就可以交給計(jì)劃任務(wù)程序去執(zhí)行操作了。

2)查看計(jì)劃任務(wù)

語(yǔ)法:# crontab   選項(xiàng)

常用選項(xiàng):

-l:list,列出指定用戶(hù)的計(jì)劃任務(wù)列表==

-e:edit,編輯指定用戶(hù)的計(jì)劃任務(wù)列表,簡(jiǎn)單來(lái)說(shuō),計(jì)劃任務(wù)就是一個(gè)文件==

-u:user,指定的用戶(hù)名,如果不指定,則表示當(dāng)前用戶(hù)

-r:remove,刪除指定用戶(hù)的計(jì)劃任務(wù)列表

示例代碼:列出當(dāng)前用戶(hù)的計(jì)劃任務(wù)列表
linux自有服務(wù)3.5.2.1

上述的提示,代表 root 用戶(hù)沒(méi)有計(jì)劃任務(wù)需要去做。

3)編輯計(jì)劃任務(wù)(重點(diǎn))
進(jìn)入計(jì)劃任務(wù)編輯文件
linux自有服務(wù)3.5.3.1


打開(kāi)計(jì)劃任務(wù)編輯文件后,可以在此文件中編寫(xiě)我們自定義的計(jì)劃任務(wù):

計(jì)劃任務(wù)的規(guī)則語(yǔ)法格式,以行為單位,一行則為一個(gè)計(jì)劃:

分      時(shí)      日      月      周      需要執(zhí)行的命令

例如:0 0 * * * reboot,代表每天0時(shí)0分執(zhí)行reboot指令。

取值范圍(常識(shí)):
分:0~59
時(shí):0~23
日:1~31
月:1~12
周:0~7,0 和 7 表示星期天

四個(gè)符號(hào):
*:表示取值范圍中的每一個(gè)數(shù)字
-:做連續(xù)區(qū)間表達(dá)式的,要想表示1~7,則可以寫(xiě)成:1-7
/:表示每多少個(gè),例如:想每 10 分鐘一次,則可以在分的位置寫(xiě):*/10
,:表示多個(gè)取值,比如想在 1 點(diǎn),2 點(diǎn) 6 點(diǎn)執(zhí)行,則可以在時(shí)的位置寫(xiě):1,2,6

特別補(bǔ)充:在Linux系統(tǒng)中,有些命令不能直接在計(jì)劃任務(wù)中使用,使用后,其也不會(huì)生效。如useradd命令。如果想讓其生效必須使用完整路徑。

問(wèn)題:如何查詢(xún)一個(gè)命令的真實(shí)路徑在哪個(gè)位置?
答:使用whereis命令名稱(chēng)

4)幾個(gè)小案例

問(wèn)題1:每月1、10、22 日的4:45 重啟network 服務(wù)

問(wèn)題2:每周六、周日的1:10 重啟network 服務(wù)

問(wèn)題3:每天18:00 至23:00 之間每隔30 分鐘重啟network 服務(wù)

問(wèn)題4:每隔兩天的上午8 點(diǎn)到11 點(diǎn)的第3 和第15 分鐘執(zhí)行一次重啟

分時(shí)日月周  命令或服務(wù)

問(wèn)題1:45  4  1,10,22   *   *   service   network   restart

問(wèn)題2:10  1  *  *  6,7  service   network   restart

問(wèn)題3:*/30  18-23   *   *   *   service network restart

問(wèn)題4:3,15   8-11  */2   *   *   reboot

案例:每1 分鐘往 root 家目錄中的 readme.txt 中輸一個(gè)1,為了看到效果使用追加輸出【輸出使用echo 命令,語(yǔ)法:# echo 輸出的內(nèi)容】

linux自有服務(wù)3.5.4.1

在末行模式下輸入:wq保存并退出,使用tail -f查看readme.txt動(dòng)態(tài)變化
linux自有服務(wù)3.5.4.2
注意:在計(jì)劃任務(wù)中,默認(rèn)最小單位就是分,不能再小了。如果需要做到秒級(jí)別則需要配合研發(fā)相關(guān)代碼。

5)擴(kuò)展

① crontab 權(quán)限問(wèn)題

crontab是任何用戶(hù)都可以創(chuàng)建的計(jì)劃任務(wù),但是超級(jí)管理員可以通過(guò)配置來(lái)設(shè)置某些用戶(hù)不允許設(shè)置計(jì)劃任務(wù) 。

黑名單配置文件位于:/etc/cron.deny里面寫(xiě)用戶(hù)名,一行只能寫(xiě)一個(gè)

linux自有服務(wù)3.5.1.1

保存退出,切換到cndws普通用戶(hù),執(zhí)行crontab命令,如下圖所示:

linux自有服務(wù)3.5.1.2

白名單還有一個(gè)配置文件

/etc/cron.allow (本身不存在,自己創(chuàng)建)

注意:白名單優(yōu)先級(jí)高于黑名單,如果一個(gè)用戶(hù)同時(shí)存在兩個(gè)名單文件中,則會(huì)被默認(rèn)允許創(chuàng)建計(jì)劃任務(wù)。

② 查看計(jì)劃任務(wù)文件保存路徑

問(wèn)題:計(jì)劃任務(wù)文件具體保存在哪里呢?

答:/var/spool/cron/用戶(hù)名文件中,如果使用root用戶(hù)編輯計(jì)劃任務(wù),則用戶(hù)文件名為root
linux自有服務(wù)3.5.5.2.1

③ 查看計(jì)劃任務(wù)日志信息

問(wèn)題:在實(shí)際應(yīng)用中,我們?nèi)绾尾榭炊〞r(shí)任務(wù)運(yùn)行情況?

答:通過(guò)計(jì)劃任務(wù)日志,日志文件位于/var/log/cron
linux自有服務(wù)3.5.5.3.1

四、Linux軟件包

1、軟件包概述

這是什么?
linux自有服務(wù)4.1.1
Linux下也有很多可以安裝的軟件,而這些軟件的安裝包可細(xì)分為兩種,分別是源碼包二進(jìn)制包

1)源碼包

源碼包就是一大堆源代碼程序,是由程序員按照特定的格式和語(yǔ)法編寫(xiě)出來(lái)的。計(jì)算機(jī)只能識(shí)別機(jī)器語(yǔ)言,也就是二進(jìn)制語(yǔ)言,所以源碼包安裝之前需要編譯。

·編譯過(guò)程耗時(shí)較長(zhǎng)
·大多數(shù)用戶(hù)不懂開(kāi)發(fā),編譯過(guò)程中可能會(huì)有各種錯(cuò)誤,用戶(hù)無(wú)力解決。
為了解決使用源碼包安裝的問(wèn)題,Linux 軟件包的安裝出現(xiàn)了使用二進(jìn)制包的安裝方式。

2)二進(jìn)制包

二進(jìn)制包,也就是源碼包經(jīng)過(guò)成功編譯之后產(chǎn)生的包。

二進(jìn)制包是 Linux 下默認(rèn)的軟件安裝包,目前主要有以下 2 大主流的二進(jìn)制包管理系統(tǒng):

RPM 包管理系統(tǒng):功能強(qiáng)大,安裝、升級(jí)、査詢(xún)和卸載非常簡(jiǎn)單方便,因此很多 Linux 發(fā)行版都默認(rèn)使用此機(jī)制作為軟件安裝的管理方式,例如 Fedora、==CentOS==、SuSE 等。
- DPKG 包管理系統(tǒng):由 Debian Linux 所開(kāi)發(fā)的包管理機(jī)制,通過(guò) DPKG 包,Debian Linux 就可以進(jìn)行軟件包管理,主要應(yīng)用在 Debian 和 Ubuntu 中。

RPM是RedHat Package Manager(RedHat軟件包管理工具)的縮寫(xiě)

作用:rpm 的作用類(lèi)似于豌豆莢,華為應(yīng)用市場(chǎng),App Store,主要作用是對(duì)linux 服務(wù)器上的軟件包進(jìn)行對(duì)應(yīng)管理操作,管理分為:查詢(xún)、卸載、安裝/更新。

2、如何獲取rpm包

要想裝軟件,和windows 下一樣,先得找到安裝包:xxx.rpm軟件包的獲得方式:

a. 去官網(wǎng)去下載(http://rpm.pbone.net);

b. 不介意老版本的話,可以從光盤(pán)(或者鏡像文件)中讀??;

3、從光盤(pán)獲取

3.1 虛擬機(jī)中加載光盤(pán)
linux自有服務(wù)4.3.1

3.2 使用 # lsblk(list block devices)或者df -T 查看塊狀設(shè)備的信息

linux自有服務(wù)4.3.2

Name:名稱(chēng)
Size:設(shè)備大小
Type:類(lèi)型
MountPoint:掛載點(diǎn)
此界面類(lèi)似于Windows 下的磁盤(pán)管理界面:
linux自有服務(wù)4.3.2.2

3.3 進(jìn)入/run/media/root/CentOS 7 x86_64/Packages目錄

#/run/media/root/CentOS 7 x86_64/Packages

#ls

linux自有服務(wù)4.3.3.1


4、查詢(xún)某個(gè)軟件安裝情況

語(yǔ)法:# rpm -qa | grep 軟件名稱(chēng)

選項(xiàng):

-q:查詢(xún),query

-a:全部,all

示例代碼:查詢(xún)firefox瀏覽器的安裝情況,已安裝

#rpm -qa |grep firefox
linux自有服務(wù)4.4.4.1

linux自有服務(wù)4.4.4.2


示例代碼:查詢(xún)qq軟件的安裝情況,未安裝

#rpm -qa |grep qq

linux自有服務(wù)4.5.1



5、卸載某個(gè)軟件

卸載某個(gè)軟件

語(yǔ)法:# rpm -e 軟件的名稱(chēng)(建議寫(xiě)完整的名稱(chēng),通過(guò)-qa 查詢(xún))

案例:卸載火狐瀏覽器

#rpm -qa |grep firefox        首先查詢(xún)firefox軟件的完整名稱(chēng)
firefox-45.7.0-2.el6.centos.x86_64

#rpm -e firefox-45.7.0-2.el6.centos.x86_64
linux自有服務(wù)4.5.1

卸載完成后,單擊firefox瀏覽器圖標(biāo),運(yùn)行結(jié)果如下圖所示:
linux自有服務(wù)4.5.2


6、安裝某個(gè)軟件

命令:rpm

作用:管理rpm軟件包

語(yǔ)法:# rpm -ivh 軟件包完整路徑名稱(chēng)

選項(xiàng):

-i:install,安裝

-v:顯示進(jìn)度條

-h:表示以"#"形式顯示進(jìn)度條

示例代碼:將剛剛卸載的firefox火狐瀏覽器重新安裝(在DVD光盤(pán)1中)

用法:rpm -ivh 軟件包名稱(chēng)
示例代碼:
#cd /run/media/root/CentOS\ 7\ x86_64/Packages/
進(jìn)入光盤(pán)Packages目錄,里面存放了很多rpm的安裝包

#ll |grep firefox
查看Packages目錄下,包含firefox的安裝包

#rpm -ivh firefox-60.2.2-1.el7.centos.x86_64.rpm
使用rpm命令,安裝firefox軟件包

#rpm -qa |grep firefox
查詢(xún)是否安裝完成
linux自有服務(wù)4.6.1

安裝完成后,打開(kāi)firefox瀏覽器
linux自有服務(wù)4.6.2

7、更新某個(gè)軟件

語(yǔ)法:# rpm -Uvh 完整的安裝包路徑

選項(xiàng):

-U:upgrade,升級(jí)

-v:表示顯示進(jìn)度條

-h:表示以#形式顯示進(jìn)度條

這里我會(huì)提供給大家firefox的高版本的安裝包

firefox-60.8.0-1.el7.centos.x86_64.rpm    這個(gè)包是用來(lái)升級(jí)的

firefox-68.4.1-1.el7.centos.x86_64.rpm

用法:rpm -Uvh 軟件包名稱(chēng)
示例代碼:
#rpm -qa |grep firefox
查詢(xún)當(dāng)前firefox的版本

#ll
查看root目錄下,我們剛剛拷到虛機(jī)上的RPM安裝包的名稱(chēng)

#rpm -Uvh firefox-60.8.0-1.el7.centos.x86_64.rpm
使用rpm命令,安裝60.8.0版本的軟件包

#rpm -qa |grep firefox
查詢(xún)升級(jí)后的firefox版本
linux自有服務(wù)4.7.1

8、rpm擴(kuò)展

8.1依賴(lài)關(guān)系

一個(gè)軟件必須先有其他軟件才能運(yùn)行,例如之前xmind啟動(dòng)過(guò)程中提示的缺少DLL,稱(chēng)之為依賴(lài)。

WAMP(Windows + Apache + MySQL + PHP)安裝前必須先安裝VC++ 2014 x86_64,這種情況就稱(chēng)之為有依賴(lài)關(guān)系。

60.8.0的firefox可以更新成功

下面我們嘗試更新到68.4.1的版本

用法:rpm -Uvh 軟件包名稱(chēng)

#rpm -Uvh firefox-68.4.1-1.el7.centos.x86_64.rpm
使用rpm命令,安裝68.4.1版本的軟件包

用法:rpm -Uvh 軟件包名稱(chēng)
#rpm -Uvh firefox-68.4.1-1.el7.centos.x86_64.rpm
使用rpm命令,安裝68.4.1版本的軟件包

錯(cuò)誤提示:

error:Failed dependencies:

提示安裝68版本的firefox需要依賴(lài)nspr4.21的版本,nss的3.44的版本,這就是我們說(shuō)的依賴(lài)關(guān)系。

為了解決依賴(lài)關(guān)系的問(wèn)題,有另外一個(gè)管理工具叫做yum,后面我們會(huì)講到。

8.2 查看文件所屬的包名(實(shí)用)

語(yǔ)法:# rpm -qf 需要查詢(xún)的文件路徑

選項(xiàng):

-f:查詢(xún)文件所屬包

示例代碼:查詢(xún)/etc/ntp.conf 屬于哪個(gè)軟件包?

linux自有服務(wù)4.8.1

8.3查詢(xún)軟件安裝完成后,生成了哪些文件

語(yǔ)法:# rpm  -ql   需要查詢(xún)的軟件包名稱(chēng)

#rpm -ql firefox

#rpm -ql openssh

特別說(shuō)明:軟件安裝完成后,一共生成了以下幾類(lèi)文件
配置文件類(lèi):/etc目錄
程序文件本身,二進(jìn)制文件命令:/usr/sbin目錄
文檔手冊(cè):/usr/share/doc或man目錄

9、擴(kuò)展:光盤(pán)的掛載和解掛

① 解掛操作

命令:umount

語(yǔ)法:# umount 當(dāng)前設(shè)備的掛載點(diǎn)(路徑)

例如:
#umount /run/media/root/CentOS\ 7\ x86_64/

linux自有服務(wù)4.9.1

② 掛載光盤(pán)

首先新建一個(gè)掛載點(diǎn),然后使用mount命令進(jìn)行掛在,掛載點(diǎn)可以理解為就是一個(gè)空目錄

命令:mount

語(yǔ)法:# mount  設(shè)備文件原始地址(/dev目錄)  要掛載的位置路徑(盤(pán)符)

設(shè)備原始地址:地址統(tǒng)一都在/dev 下,然后根據(jù)大小確定具體name 值,拼湊在一起組成原

始地址,例如當(dāng)前:"/dev/sr0"

用法:mount 設(shè)備 掛載點(diǎn)
示例代碼:
#mkdir /mnt/dvd
新建一個(gè)目錄作為掛載點(diǎn)

#mount /dev/sr0 /mnt/dvd
將光驅(qū)設(shè)備/dev/sr0 掛載到 /mnt/dvd這個(gè)掛載點(diǎn)

#df -T
可以看到已經(jīng)成功掛載
linux自有服務(wù)4.9.3
分享到:
在線咨詢(xún) 我要報(bào)名
和我們?cè)诰€交談!