rockyLinux 介紹軟體安裝我主要挑了編輯器 neovim 和 版本管理控制工具 Git 進行介紹。
通常情況,部署完Linux發行版,自帶 vim 工具,既然有了vim,那就來點新的嚐嚐鮮,比如 neovim。
如果你想用版本控制工具,Git 是不錯的選擇,在本地初始化倉庫做版本控制,還可以配合github 和 gitee 進行使用,獲取開源軟體。
如果不是做核心裁剪相關工作,或者參與社群開發維護,其實不用涉及太深的知識。
tips:關於安裝軟體,普通使用者沒有許可權,請使用 sudo 命令 提取許可權,root 超級使用者則不需要加 sudo。
Red Hat 企業版 Linux 9 軟體管理工具,使用RHEL系列(centos、centos-stream、rockyLinux)可以參考RHEL文件。
在 Red Hat Enterprise Linux 9 中,DNF 工具用於軟體安裝。Red Hat 繼續支援使用 yum 術語與之前的 RHEL
主要版本保持一致。如果你鍵入 yum 而不是 dnf,命令可以正常工作,因為這兩者是相容性的別名。
注意:RHEL 8 和 RHEL 9 基於 dnf 管理工具,與 RHEL 7 中使用 yum 相容。
當你看到這篇博文,無論是使用雲伺服器或者 VMware搭建虛擬環境,我預設你有Linux基本知識。
例如:基本操作,使用 ssh 命令連線遠端伺服器,透過 su 命令切換使用者身份。
演示安裝之前,使用終端管理工具先登入到普通使用者(預設禁用了root使用者ssh登入許可權)。
登入終端
PS D:\work> ssh wzgy@192.168.245.133
wzgy@192.168.245.133's password:
如果你和我一樣使用的是Windows 11 ,自帶終端管理工具,可以滿足日常簡單操作。複雜一點的功能,可能需要藉助於Xshell等工具。
切換root使用者身份,兩種方式
- su root
- su -
[wzgy@localhost ~]$ su root
密碼:
[root@localhost wzgy]#
如何確認當前使用者身份?
根據符號 $ 和 # 區分,如果看到的是 $ 運算子,代表普通使用者,如果是 # 符號,代表超級使用者 root。
編輯器 Neovim
- neovim 穩定版本地址:https://github.com/neovim/neovim/releases/tag/stable
- neovim 所有版本:https://github.com/neovim/neovim/releases/tag
1、透過 Linux 發行版自帶軟體管理工具安裝
準備EPEL環境,Rocky Linux 9:
dnf config-manager --set-enabled crb
dnf install epel-release
yum & dnf 工具安裝 neovim:
yum -y install neovim.x86_64
執行命令執行:
nvim
輸出結果:
NVIM v0.9.0
Build type: Release
LuaJIT 2.1.0-beta3
2、下載歸檔包 nvim-linux64.tar.gz 安裝,已經編譯好的原始碼包
獲取:
wget https://github.com/neovim/neovim/releases/download/stable/nvim-linux64.tar.gz
解壓:
tar -zxvf nvim-linux64.tar.gz
執行命令執行:
./nvim-linux64/bin/nvim
檢視 nvim 版本:
./nvim-linux64/bin/nvim -v
輸出結果同上面二進位制包(rpm)形式安裝後,檢視版本結果。
配置環境變數 vim /etc/profile:
# neovim home
NEOVIM_HOME=/usr/local/nvim-linux64/
PATH=$PATH:$NEOVIM_HOME/bin
export NEOVIM_HOME PATH
如果想即時生效,不想重啟伺服器,執行 source 命令即可:
source /etc/profile
配置完成,在任意位置都可以執行 nvim 命令。
3、原始碼包編譯安裝
如果是初學者、或者沒有高度定製需求,個人不推薦使用這種形式構建。雖然靈活度很高,編譯出問題並不好排查。如果是抱著學習的心態,可以嘗試。畢竟一分耕耘,一分收穫,知識寶庫慢慢壯大。
獲取:
wget https://github.com/neovim/neovim/archive/refs/tags/stable.zip
必備環境(比如make、cmake、gcc等等)、編譯、安裝步驟此處省略,請參考官方文件:
https://github.com/neovim/neovim/wiki/Installing-Neovim#install-from-source
版本控制工具 Git
普通使用者部署Git環境
sudo yum -y install git-core
root使用者部署Git環境
yum -y install git-core
生成秘鑰:
ssh-keygen -t rsa -b 4096 -C "username@example.com"
如果你還想了解更多 ssh-keygen 的用法,可以使用幫助命令:
ssh-keygen --h
檢查你的系統目錄是否有ssh公鑰。預設情況ssh公鑰,可能是以下幾種檔案形式:
- id_ed25519.pub
- id_rsa.pub
- id_ecdsa.pub
- id_dsa.pub
檢查 ssh公鑰 id_rsa.pub 檔案內容,在你當前使用者 ~/.ssh/ 目錄中
[root@localhost test]# ls /root/.ssh/
id_rsa id_rsa.pub known_hosts
[root@localhost test]# nvim /root/.ssh/id_rsa.pub
[root@localhost test]# ssh -T git@github.com
Hi cnwangk! You've successfully authenticated, but GitHub does not provide shell access.
既然上面介紹了 nvim,此時直接使用 nvim 編輯 ssh 公鑰檔案:nvim id_rsa.pub 。
複製 id_rsa.pub 檔案內容到 github 賬號的ssh-key中
https://github.com/settings/ssh/new
使用命令測試驗證,驗證github:
ssh -T git@github.com
示例:驗證成功,返回結果為Hi 你的使用者名稱! You've successfully authenticated;驗證失敗,則返回permission deny許可權拒絕。
返回失敗結果,此時需要根據上面步驟配置 ssh 公鑰:
[root@localhost test]# ssh -T git@github.com
git@github.com: Permission denied (publickey).
返回成功結果:
[root@localhost test]# ssh -T git@github.com
Hi cnwangk! You've successfully authenticated, but GitHub does not provide shell access.
關於 git 基本用法,可以在公眾號回覆 git 即可獲取相關基本用法,僅供參考喲!
上面介紹了rockyLinux 平臺neovim 和 git兩款軟體的安裝,接下來系統介紹 RHEL 體系軟體安裝。
RHEL 系列軟體安裝介紹
緣起,幾年前外出工作,意識到學習 Linux 基本知識的必要性,當時自學使用的是Linux發行版 centos6.5,大概距今已有八年。最早寫這篇文件可以追溯到 2017 年,後來轉到 centos7.x,翻新了一遍。目前轉到RHEL9,發現以前的總結,有許多不足之處。
個人穩定環境,目前已經切換到穩定發行版 REHL9 系列 Rocky Linux 9;測試環境,使用 centos-stream-9。
軟體安裝包簡介
原始碼包優點
- 開源,假如有足夠的實力,可以修改原始碼。
- 自由選擇所需的功能。
- 軟體是編譯安裝,更加適合自己的系統,穩定效率更高。
- 解除安裝方便。
原始碼包的缺點
- 安裝過程步驟多,尤其安裝大的軟體集合時(LAMP環境搭建),容易出現拼寫錯誤。
- 編譯過程時間較長,比二進位制安裝時間長。
- 安裝過程一旦報錯,剛入門時(新手)很難解決,個人入門時深有體會。
rpm 包二進位制包優點
- 管理系統簡單,透過簡單的幾個命令可以實現包的安裝、升級、查詢和解除安裝。
- 安裝速度比原始碼包快。
二進位制包缺點
- 經過編譯,無法看到原始碼。
- 功能選擇沒有原始碼包靈活。
- 依賴性(安裝一個包時會找很多依賴包,比較繁瑣,對初學者不友好)。
原始碼包安裝
1、安裝前的準備工作
- 安裝C語言編譯器;
- 下載原始碼包。
2、安裝注意事項
- 原始碼儲存位置:/usr/local/src
- 軟體安裝位置:/usr/local/
- 如何確定安裝過程報錯:安裝時停止,出現error、warning或no的提示
3、原始碼包安裝位置
- 安裝在指定路徑中,一般在:/usr/local/軟體名/
4、安裝位置不同帶來的影響
RPM包安裝的服務可以使用系統服務管理命令(service)來管理,例如RPM包安裝的Apache啟動方法:
安裝 httpd 服務,前面也提到過,RHEL9中dnf和yum都行: dnf -y install httpd
- 方式一:/etc/rc.d/init.d/httpd start
- 方式二:service httpd start & systemctl start httpd
5、原始碼包安裝過程
下載並解壓安裝包,進入目錄,一般情況部署指令碼可能指定路徑為 /usr/local/ 也不排除指定為 /usr/ 。
配置:./configure prefix=/usr/local/
- 定義需要的功能選項;
- 檢測系統環境是否符合安裝要求;
- 把定義好的功能選項和檢測系統環境的資訊都寫入Makefile檔案,用於後續編輯;
- 編譯make ,make install編譯安裝。
rpm包安裝
rpm包預設安裝位置 | 釋義 |
---|---|
/ect/ | 配置檔案安裝目錄 |
/usr/bin/ | 可執行的命令安裝目錄 |
/usr/lib/ | 程式使用的函式庫儲存位置 |
/usr/share/doc/ | 基本軟體使用手冊儲存位置 |
/usr/share/man/ | 幫助手冊儲存位置 |
rpm包命名原則解讀一覽表:httpd-2.4.53-7.el9_1.5.x86_64.rpm
選項 | 釋義 |
---|---|
httpd | 軟體包名 |
2.4.53 | 版本 |
7 | 釋出的次數 |
el9_1.5 | 適合的linux平臺 |
x86_64 | 適用的硬體平臺 |
rpm | 軟體包副檔名 |
rpm命令管理
1、查詢是否安裝:
選項 | 釋義 |
---|---|
查詢當前軟體包是否安裝 | rpm -q 包名 |
查詢所有已經安裝的rpm包 | rpm -qa |
-q | query:查詢 |
-a | all:所有 |
2、查詢軟體包詳細資訊
說明:可以獲取 httpd 服務安裝包做作為測試體驗,透過 wget 命令線上獲取 rpm 安裝包。
rpm -pi 包名
選項:
- -i:information,查詢詳細資訊
- -p:package,查詢未安裝包資訊
3、查詢安裝包檔案所在安裝位置
- rpm -ql 包名
- 選項:-l,list 列表
4、查詢系統檔案屬於哪個RPM包
- rpm -qf 系統檔名
- 選項:-f(file查詢系統檔案屬於哪個軟體包)
示例,查詢PostgreSQL指令碼 pg_ctl 屬於那個rpm包:
[root@localhost ~]# rpm -qf /usr/pgsql-15/bin/pg_ctl
postgresql15-server-15.2-1PGDG.rhel9.x86_64
可以看到輸出結果,pg_ctl 指令碼屬於 postgresql15-server-15.2-1PGDG.rhel9.x86_64 。
5、查詢軟體包的依耐性
- rpm -qR 包名:查詢軟體包的依耐性
- 選項:-R(requires 查詢軟體包的依耐性)
rpm包的依耐性
- 樹形依賴:a->b->c
- 環形依賴:a->b->c->a
- 模組依賴:查詢網址:www.rpmfind.net
6、RPM包校驗
- rpm -V 已安裝軟體包
- 選項:-V(verify校驗指定rpm包的檔案)
檔案型別:
選項 | 釋義 |
---|---|
-c (config file) | 配置檔案 |
-d (documentation) | 普通文件 |
-d (documentation) | "鬼檔案",指該檔案不應該被rpm包包含 |
-L (license file) | 授權檔案 |
-r (read me) | 描述檔案 |
內容校驗:驗證內容中的8個資訊的具體內容如下
選項 | 釋義 |
---|---|
-S | 檔案大小是否改變 |
-M | 檔案的型別或檔案許可權(rwx)是否被改變 |
-5 | MD5校驗,檔案內容是否改變 |
-D | 裝置的主從程式碼是否改變 |
-L | 檔案路徑是否改變 |
-U | 檔案所有者是否改變 |
-G | 檔案屬組是否改變 |
-T | 檔案修改時間是否改變 |
7、rpm包的安裝解除安裝與升級
選項 | 釋義 |
---|---|
-i | (install:安裝) |
-v | (verbose |
-h | (hash:顯示進度) |
-U | (upgrade:升級) |
-e | (erase:解除安裝) |
--nodeps | (不檢測依賴性) |
- 安裝:rpm -ivh 接包全名
- 解除安裝:rpm -e 接包名(你要解除安裝的軟體)
- 升級:rpm -Uvh 接包名
8、rpm包中檔案提取
rpm2cpio 包全名 | cpio -idv檔案絕對路徑
- rpm2cpio:將rpm轉換為cpio格式
- cpio:標準工具,用於建立軟體檔案檔案以及從檔案中提取檔案
cpio 選項 < [檔案][裝置]
這裡是標準格式,當然可以使用上面介紹的管道符方式。
例如:cpio -idv < test.txt
選項:
- -i:(copy-in模式,還原)
- -d:還原時自動新建目錄
- -v:顯示還原過程
yum & dnf 線上安裝
RHEL 8之前的版本,只能使用 yum 工具管理,RHEL 8 以及目前最新的RHEL9 同時支援dnf和 yum 命令,可以將yum當成dnf的別名。
在 Red Hat Enterprise Linux 9 中,dnf 工具用於軟體安裝。Red Hat 繼續支援使用 yum 術語與之前發行的 RHEL
主要版本保持一致。如果你輸入 yum 而不是 dnf,命令可以正常工作,因為這兩者是相容性的別名
dnf 管理工具功能不侷限於限安裝和解除安裝,當然還可以進行搜尋軟體包、列出軟體包資訊、軟體倉庫、軟體包組、可用模組等等。下面介紹,依舊基於 yum 命令演示。
1、常用的yum命令
- yum list,查詢所有可用軟體包列表
- yum search 包名,搜尋伺服器上所有和關鍵字相關的包
示例,搜尋httpd 核心包:
yum search httpd-core
httpd-core.x86_64 : httpd minimal core
2、安裝
yum -y install 包名
引數含義:
- install:安裝
- -y:自動回答yes
例如安裝 httpd:
yum -y install httpd
3、升級
yum -y update 包名
- update:升級
4、解除安裝
- yum -y remove 包名
- remove:解除安裝
5、yum軟體組管理命令
- yum grouplist:列出所有可用的軟體組列表
- yum groupinstall:軟體組名,安裝指定軟體組,組名可以由grouplist查詢出來
- yum groupremove:軟體組名,解除安裝指定軟體組
6、yum原始檔講解
老版本RHEL6 & RHEL7 系列(centos6.x或者centos7.x) 編輯網路yum源:
vim /etc/yum.repos.d/CentOS-Base.repo
在 Rocky Linux 9中編輯:
vim /etc/yum.repos.d/rocky.repo
使用 tree 命令檢視 /etc/yum.repos.d/:
tree /etc/yum.repos.d/
選項 | 釋義 |
---|---|
[base] | 容器名稱,一定要放在[]中 |
name | 容器說明,可以自己隨便寫 |
mirrorlist | 映象站點,這個可以註釋掉 |
baseurl | yum源伺服器的地址。預設是CentOS官方的伺服器,可以使用的,如果你覺得慢可以改成你喜歡的yum源地址。 |
enabled | 此容器是否生效,如果不寫或者寫成enabled=1都是生效,改為enabled=0就是不生效。 |
gpgcheck | 如果是1,指RPM數字證照生效,為0則不生效。 |
gpgkey | 數字證照的公鑰檔案儲存位置,不用修改。 |
如果你想替換為國內映象 yum 源,可以做如下操作,注意 rocky大小寫,Linux平臺對大小寫敏感:
sed -e 's|^mirrorlist=|#mirrorlist=|g' \
-e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' \
-i.bak \
/etc/yum.repos.d/rocky-*.repo
再次執行,替換 rocky.repo 映象源地址:
sed -e 's|^mirrorlist=|#mirrorlist=|g' \
-e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' \
-i.bak \
/etc/yum.repos.d/rocky.repo
更新 dnf 源:
dnf makecache
原始連結配置方法有點小問題,實際替換 rocky 應該是是純小寫的:https://developer.aliyun.com/mirror/rockylinux?spm=a2c6h.13651102.0.0.6bd71b11XWmo3X
指令碼安裝包
centos.sh 指令碼分析:一鍵安裝包,實際上還是安裝的原始碼包和rpm包,只是把安裝過程寫成了指令碼,便於初學者安裝。
優點:簡單,快速,方便。
缺點:
- 不能定義安裝軟體的版本,選擇餘地較少;
- 不能定義所需軟體功能;
- 原始碼包的優勢喪失。
例如:
典型的一鍵安裝包有lnmp(Nginx + MySQL + php),還有 lnmpa(Nginx + MySQL + php + Apache)以及lamp(Apache + MySQL + php)隨著一鍵安裝包的最佳化,用起來更方便,便於初學者使用。
具體不做過多介紹,網址:https://lnmp.org/(對於入門來說的確很好用),目前已經更新到:2022-6-1 LNMP1.9 正式版。
參考資料
Neovim wiki :https://github.com/neovim/neovim/wiki/Building-Neovim#quick-start
Epel:https://docs.fedoraproject.org/en-US/epel/
REHL9 DNF 管理工具:https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/9/html/managing_software_with_the_dnf_tool/index
以上總結,僅供參考喲!希望對你的工作有所幫助。
—END—