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

我們要解決問題只靠單一的技能會讓解決方案受到限制,Windows Server 友善的 GUI 畫面實在讓人愛不釋手,但偏偏一些好用的開源工具及服務,在 Windows Server 上的支援及資源是比較少的,當我在看到這篇文章 ASP.NET Core – 2300% More Requests Served Per Second 之後想一想,其實花點時間把 Linux 購入工具包有益無害。

Linux 的主要發行版本

Linux 會讓我怯步的原因是因為它的選擇性比較多,各有擁護者,我並沒有要把 Linux 用到出神入化,只是要在上面安裝及管理服務,所以該選擇哪個發行版本呢?答案是「看你爽!」,其實就是真的看你看哪個版本順眼,每個版本都可以滿足我要做的事情。

目前 Linux 常見中的常見發行版本有 FedoraDebian 這兩大陣營,而基於 Fedora 的知名發行版則有 Red Hat Enterprise Linux(RHEL),由於 RHEL 要收費,所以社群的大大就很不爽,就弄了一個基於 RHEL 的發行版 CentOS,另外基於 Debian 的知名發行版則有 Ubuntu

對這兩大陣營的發行版本,普世認為簡單的選擇比較上是這樣的:

  • Debian/Ubuntu: 適合個人用
  • RHEL/CentOS: 適合伺服器用

事事沒有絕對,這只是既定印象是這樣子的情況,沒有人說不能拿 Debian/Ubuntu 去當伺服器,也沒有人說不能拿 RHEL/CentOS 去當個人 PC,但是出發總得有個方向,我腦袋中的既定印象受到這本書 24 小時不打烊的雲端服務-專家教你用 CentOS 架設萬年不掛的伺服器的影響(哇靠!萬年不掛耶!),所以我選擇從 CentOS 開始切入 Linux 的世界。

目錄結構

從 Windows 要跨足到 Linux 碰到的其中一個問題,也是蠻大的問題就是目錄結構,建議大家把 Windows C:\、D:\ 那一套完全捨棄,但是要保留磁碟分割的觀念,不知道什麼是磁碟分割的朋友請參考鳥哥的這篇文章 MSDOS(MBR) 與 GPT 磁碟分割表(partition table)

Linux 的目錄從 / 這條正斜線開始,也稱為「根目錄」,所有的目錄通通會從這裡延伸出去,包括外部的儲存設備也是,那麼它怎麼跟磁碟分割套在一起?我們可以這樣想像,磁碟分割就像是個空罐子,整個系統的目錄結構就像是一顆樹,樹上的每根樹枝就是從根目錄延伸出去的資料夾,這些樹枝(包含根目錄)會不停地流出資料檔案,空罐子就用來接住這些流出來的資料檔案,直到滿了為止。

Linux 的檔案系統有一個很特別的機制,它可以允許我們另外準備一個空罐子(磁碟分割),去掛載到我們指定的樹枝(延伸目錄),專門接住這根樹枝所流出來的資料檔案,而且可以隨意掛載,比如說 /home 已經掛載了 100 GB 的磁碟空間,而 /home/johnny 可以另外掛載 50 GB 的磁碟空間,超神奇的。

這時候我們不禁會問,那作業系統檔案、另外安裝的軟體檔案、個人文件…等,這些不同類型的檔案要怎麼擺放?會被放到哪裡去?Linux 當然是有規則的,Linux 遵循檔案系統階層標準來定義主要的目錄及目錄的內容,底下我列出我經常與其打交道的幾個 Linux 主要目錄,打交道的頻率由高至低排序。

  • /etc: Linux 的系統重要目錄之一,裡面放置所有系統的設定檔,只有系統管理員才可以修改這些檔案。
  • /usr: 一些 Linux 系統必要的套件軟體,以及我們自行下載安裝的套件軟體,大都會被安裝在這個資料夾。
  • /var: 變動性與排隊等待系統處理的檔案會被放置在這邊,其中我最常瀏覽的就是 /var/log 這個資料夾。
  • /home: 稱為「家目錄」,每個使用者的帳號預設會在家目錄底下擁有一個與帳號相同名稱的資料夾,用來存放使用者個人的環境設定與私人檔案,除了使用者本人以外,其他使用者是無法存取目錄內容的。
  • /opt: 非 Linux 預設安裝的外部軟體,會被放置在這個資料夾中,雖然講是這樣講,在 CentOS 安裝完軟體之後,八成會被安裝在 /usr 資料夾,所以要找軟體被安裝在哪裡,建議先從 /usr 開始找,找不到再找 /opt,這是經驗談。
  • /lib: 放置系統的共用函式庫。

作業系統安裝

CentOS 啟動安裝的方式與 Windows 無異,我們到 Download CentOS 這個 CentOS 的官網下載區,把 DVD ISO 下載回來,有了一片安裝光碟之後,我們就可以開始安裝了,而如何啟動安裝程序我不贅述,倒是安裝的過程有幾個步驟要注意一下。

軟體選擇

建議選擇「最小安裝」開始進行試煉,因為在 Linux 的世界一切都得自己來,別人 try 過的結果在自己的情境上無法套用的機率是很大的,唯有很清楚地知道我現在在做什麼,才有突破重圍的機會,除了看書、Google 之外,剩下就是不停地練習跟嘗試,所以用「最小安裝」來強迫自己多踩一些坑,多了解一點。

網路與主機名稱

要記得修改「主機名稱」,因為主機名稱的設定畫面跟網路的設定畫面放在一起,而且只有一小格,很容易被忽略,接著如果我們有需要網路的話,記得把網路打開。

安裝目的地

這個步驟是要我們決定磁碟的空間要怎麼分配,如果我們沒有特殊目的,只要選擇「自動配置磁碟分割」這個選項,然後按兩次「完成」按鈕就可以了。

我這邊另外假設一個情境,如果我要額外建一個 /data 的資料夾,並掛載 20 GB 的空間,這個時候我們就要選「讓我自行配置磁碟分割」的選項,然後先點擊「請點按這裡讓系統自動建立」建立出 CentOS 基本的目錄結構。

接著我們按左下角「+」符號按鈕加入新的掛載點,掛載點就填入 /data,欲使用容量就填入 20GB。

按下「新增掛載點」後會發現,/data 的需要容量不是我們填的 20 GB,這時候不用擔心,去調整其他目錄的大小,讓可用空間空出 20 GB 後再來調整 /data 的需要容量就可以了。

設定完成磁碟容量的分配之後,按兩次「完成」的按鈕回到安裝摘要,最後按下「開始安裝」,完成後面的安裝步驟就可以順利安裝完成了,當然最小安裝是沒有 GUI 可以用的,這一篇就先講到這邊,下一篇會進入 Command Line 的世界,介紹如何安裝套件軟體、設定背景執行…等等,把我們要使用的服務在 CentOS 上 on 起來。

相關資源

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