Rocky 9 Linux 軟體安裝 neovim 和 git

2023-05-12 21:00:48

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 [email protected]
[email protected]'s password:

如果你和我一樣使用的是Windows 11 ,自帶終端管理工具,可以滿足日常簡單操作。複雜一點的功能,可能需要藉助於Xshell等工具。

切換root使用者身份,兩種方式

  1. su root
  2. su -
[wzgy@localhost ~]$ su root
密碼:
[root@localhost wzgy]#

如何確認當前使用者身份?

根據符號 $ 和 # 區分,如果看到的是 $ 操作符,代表普通使用者,如果是 # 符號,代表超級使用者 root。

編輯器 Neovim

  1. neovim 穩定版本地址:https://github.com/neovim/neovim/releases/tag/stable
  2. 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

版本控制工具 Git

普通使用者部署Git環境

sudo yum -y install git-core

root使用者部署Git環境

yum -y install git-core

生成祕鑰:

ssh-keygen -t rsa -b 4096 -C "[email protected]"

如果你還想了解更多 ssh-keygen 的用法,可以使用幫助命令:

ssh-keygen --h

檢查你的系統目錄是否有ssh公鑰。預設情況ssh公鑰,可能是以下幾種檔案形式:

  1. id_ed25519.pub
  2. id_rsa.pub
  3. id_ecdsa.pub
  4. 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 [email protected]
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 [email protected]

範例:驗證成功,返回結果為Hi 你的使用者名稱! You've successfully authenticated;驗證失敗,則返回permission deny許可權拒絕。

返回失敗結果,此時需要根據上面步驟設定 ssh 公鑰:

[root@localhost test]# ssh -T [email protected]
[email protected]: Permission denied (publickey).

返回成功結果:

[root@localhost test]# ssh -T [email protected]
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。

軟體安裝包簡介

原始碼包優點

  1. 開源,假如有足夠的實力,可以修改原始碼。
  2. 自由選擇所需的功能。
  3. 軟體是編譯安裝,更加適合自己的系統,穩定效率更高。
  4. 解除安裝方便。

原始碼包的缺點

  1. 安裝過程步驟多,尤其安裝大的軟體集合時(LAMP環境搭建),容易出現拼寫錯誤。
  2. 編譯過程時間較長,比二進位制安裝時間長。
  3. 安裝過程一旦報錯,剛入門時(新手)很難解決,個人入門時深有體會。

rpm 包二進位制包優點

  1. 管理系統簡單,通過簡單的幾個命令可以實現包的安裝、升級、查詢和解除安裝。
  2. 安裝速度比原始碼包快。

二進位制包缺點

  1. 經過編譯,無法看到原始碼。
  2. 功能選擇沒有原始碼包靈活。
  3. 依賴性(安裝一個包時會找很多依賴包,比較繁瑣,對初學者不友好)。

原始碼包安裝

1、安裝前的準備工作

  1. 安裝C語言編譯器;
  2. 下載原始碼包。

2、安裝注意事項

  1. 原始碼儲存位置:/usr/local/src
  2. 軟體安裝位置:/usr/local/
  3. 如何確定安裝過程報錯:安裝時停止,出現error、warning或no的提示

3、原始碼包安裝位置

  1. 安裝在指定路徑中,一般在:/usr/local/軟體名/

4、安裝位置不同帶來的影響

RPM包安裝的服務可以使用系統服務管理命令(service)來管理,例如RPM包安裝的Apache啟動方法:

安裝 httpd 服務,前面也提到過,RHEL9中dnf和yum都行: dnf -y install httpd

  1. 方式一:/etc/rc.d/init.d/httpd start
  2. 方式二:service httpd start & systemctl start httpd

5、原始碼包安裝過程

下載並解壓安裝包,進入目錄,一般情況部署指令碼可能指定路徑為 /usr/local/ 也不排除指定為 /usr/ 。

設定:./configure prefix=/usr/local/

  1. 定義需要的功能選項;
  2. 檢測系統環境是否符合安裝要求;
  3. 把定義好的功能選項和檢測系統環境的資訊都寫入Makefile檔案,用於後續編輯;
  4. 編譯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 包名

選項:

  1. -i:information,查詢詳細資訊
  2. -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、查詢軟體包的依耐性

  1. rpm -qR 包名:查詢軟體包的依耐性
  2. 選項:-R(requires 查詢軟體包的依耐性)

rpm包的依耐性

  1. 樹形依賴:a->b->c
  2. 環形依賴:a->b->c->a
  3. 模組依賴:查詢網址:https://www.cnblogs.com/cnwangk/p/www.rpmfind.net

6、RPM包校驗

  1. rpm -V 已安裝軟體包
  2. 選項:-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 (不檢測依賴性)
  1. 安裝:rpm -ivh 接包全名
  2. 解除安裝:rpm -e 接包名(你要解除安裝的軟體)
  3. 升級:rpm -Uvh 接包名

8、rpm包中檔案提取
rpm2cpio 包全名 | cpio -idv檔案絕對路徑

  1. rpm2cpio:將rpm轉換為cpio格式
  2. cpio:標準工具,用於建立軟體檔案檔案以及從檔案中提取檔案

cpio 選項 < [檔案][裝置]
這裡是標準格式,當然可以使用上面介紹的管道符方式。

例如:cpio -idv < test.txt
選項:

  1. -i:(copy-in模式,還原)
  2. -d:還原時自動新建目錄
  3. -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命令

  1. yum list,查詢所有可用軟體包列表
  2. yum search 包名,搜尋伺服器上所有和關鍵字相關的包

範例,搜尋httpd 核心包:

yum search httpd-core
httpd-core.x86_64 : httpd minimal core

2、安裝
yum -y install 包名

引數含義:

  1. install:安裝
  2. -y:自動回答yes

例如安裝 httpd:

yum -y install httpd

3、升級
yum -y update 包名

  1. update:升級

4、解除安裝

  1. yum -y remove 包名
  2. remove:解除安裝

5、yum軟體組管理命令

  1. yum grouplist:列出所有可用的軟體組列表
  2. yum groupinstall:軟體組名,安裝指定軟體組,組名可以由grouplist查詢出來
  3. 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包,只是把安裝過程寫成了指令碼,便於初學者安裝。

優點:簡單,快速,方便。

缺點

  1. 不能定義安裝軟體的版本,選擇餘地較少;
  2. 不能定義所需軟體功能;
  3. 原始碼包的優勢喪失。

例如

典型的一鍵安裝包有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

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—