[料理佳餚] 十三太保橫練 Windows 跨足 CentOS - 第二式

在第一式 [料理佳餚] 十三太保橫練 Windows 跨足 CentOS - 第一式我們提到了 Linux 的主要發行版本及選擇、目錄結構和常用的主要目錄、作業系統安裝及要注意的步驟,緊接著我們要克服的是 Windows 跨足到 Linux 必須要面對的問題之一 -「可能沒有 GUI」,話說得保守是因為現在 Linux 的世界還是積極地在發展 GUI,但是現今仍是 Command Line 的天下,看到要下指令有些人頭就大了,請不要擔心,我們會用到的指令其實不多。

套件軟體安裝

在把 CentOS 安裝起來之後,勢必要安裝一些我們想要用的服務,在 CentOS 要安裝外部的套件軟體至少有三種方式,這三種方式我都操作過,其中最方便的當然就是 YUM 了。

YUM

YUM 是 Yellow dog Updater, Modified 的縮寫,它是一個 RPM 軟體包(待會兒會提到 RPM)的管理器,從指定的 Repository 下載安裝 RPM 軟體包並且自動處理與其它 RPM 軟體包的依賴關係,一次安裝所有依賴的 RPM 軟體包。

我經常使用的 YUM 指令:

  • yum install [完整套件名稱]:安裝套件的指令,例如我要安裝 JDK 1.8.0 我就要下 yum install java-1.8.0-openjdk.x86_64,而我通常會加個 -y 參數來跳過詢問視窗。
  • yum remove [完整套件名稱]:反之 remove 就是移除套件的指令。
  • yum list 關鍵字*:列出關鍵字開頭的套件,例如,我要列出 java 開頭的套件就下 yum list java*,依此賴推,關鍵字結尾就是 *關鍵字、包含關鍵字就是 *關鍵字*

我用到的也就這麼多了,通常有一些套件會提供官方的 Repository,例如像 ELK 的 Kibana,我在 [料理佳餚] 在 CentOS 7 與 ELK(Elasticsearch + Logstash + Kibana)初次相遇 這篇文章裡面就有另外增加 YUM Repository 的方法。

RPM

如果很不幸地沒有 YUM Repository 可以用,我們就有第二個選擇 - RPM,RPM 是 The RPM Package Manager 的簡稱,是 CentOS 使用的軟體包管理器,用來安裝已經被打包成 *.rpm 檔的套件。

除了 YUM 之外,其他兩種方式都必須自己處理套件相依的問題,舉例來說,我們要安裝一個 MariaDB 好了,不是只有下載 MariaDB-server 的 rpm 檔來安裝就沒事了,我們還得安裝 MariaDB-client、MariaDB-common、MariaDB-compat…等等,一堆跟 MariaDB 相依的套件,所以我們儘量使用 YUM Repository 來安裝套件軟體,會省去很多麻煩。

我經常使用的 RPM 指令,也只有兩個:

  • rpm -ivh [RPM 檔案位置]-i 參數表示 install、-v 參數表示顯示詳細訊息、-h 表示顯示進度條。
  • rpm -e [套件名稱]:移除套件。

自行編譯安裝

最不方便的情況莫過於此了,我們只下載得到 Source Code,沒有 YUM Repository,也沒有打包好的 RPM 檔案,我曾經在 [料理佳餚] 在 CentOS 7 安裝 Redis(方法二) 這篇文章裡面用 Redis 的原始碼安裝 Redis,要做的事情還真不少,有興趣的朋友可以參考我那篇文章。

背景執行

套件軟體安裝好之後,最重要的就是讓它可以 Always Running 了,在 CentOS 7,通常套件軟體用 YUM 或 RPM 安裝好之後,會在 /lib/systemd/system 目錄底下產生一個 *.service 檔案,透過執行 systemctl 工具來設定讓套件軟體可以背景執行。

# 先啟用服務,才可以啟動。
systemctl daemon-reload
systemctl enable XXX.service

# 啟動服務
systemctl start XXX.service

# 重新啟動服務
systemctl restart XXX.service

# 停止服務
systemctl stop XXX.service

# 停用服務
systemctl disable XXX.service

而在 CentOS 7 以前是用 chkconfig 工具來設定讓服務背景執行,關於 chkconfig 我不贅述,有興趣的朋友請參考 [料理佳餚] 在 CentOS 7 安裝 Redis(方法二) 這篇文章,裡面算是 CentOS 7 及 7 以前的做法都有介紹到。

防火牆

我們使用一個套件軟體,通常會伴隨著需要依靠網路來存取它,CentOS 7 最小安裝預設是會安裝防火牆,並將防火牆的服務啟動,這時候我們就需要關閉防火牆或在防火牆上開 port,讓我們安裝的套件軟體可以正常運作。

# 停用防火牆
systemctl disable firewalld
systemctl stop firewalld

# 啟用防火牆
systemctl daemon-reload
systemctl enable firewalld
systemctl start firewalld

# 在防火牆上開 TCP 1304 埠號
firewall-cmd --permanent --add-port=1304/tcp
firewall-cmd --reload

其他我經常使用的指令

  • pwd: 顯示現在所在的目錄
  • cd: 切換目錄
  • cd ~: 切換到家目錄
  • ll: 以詳細資料的檢視方式列出子目錄及檔案清單
  • ifconfig: 查看網卡資訊(需安裝 net-tools)
  • sudo -i: 切換到 superuser 的身分,而切回普通帳戶就使用 exitlogout
  • vi: 這是一個內建的文字編輯器
  • cat /proc/cpuinfo | grep "model name"|wc -l: 查看 CPU Core 數量(包含 Hyper Thread, HT)
  • cat /proc/meminfo | grep "Total": 查看 Memory 總容量
  • logout: 登出
  • reboot: 重新開機
  • shutdown now: 立即關機

相關資源

C# 指南
ASP.NET 教學
ASP.NET MVC 指引
Azure SQL Database 教學
SQL Server 教學
Xamarin.Forms 教學