Linux 作業系統、虛擬機器與精簡電腦操作簡介課程

Linux暑期課程 > 軟體編譯

Linux 暑期課程-軟體編譯

軟體編譯很重要,因為很多時刻你需要的軟體並不在官網上面,那你就得要自行編譯安裝才行。 而編譯一般使用 gcc 來處理,這時你就得要處理好編譯所需要的前驅軟體 (編譯器與函式庫等),才有辦法繼續做軟體編譯的行為啊!
  1. 你應該要知道原始碼、編譯器、函式庫、Tarball 軟體下載、make 功能與 Makefile 檔案的功能等!請參考:
    • 鳥哥基礎學習:原始碼與 Tarball
    • 上面的網頁當中,有幾張圖示,請仔細看清楚~尤其是 make 的功能,以及 configure 的功能!
    • 因為是自我安裝,所以可能會安裝在非正規目錄,故如何設定讓操作者可以執行,環境變數的設定也相當重要!
  2. 來個比較大的計劃案,我們打算編譯一個『可以執行平行化處理的模式運作系統』。而平行化處理使用的是 MPICI 這個函式庫, 至於未來要跑的數值模式為 Models3 的空品模式,這時該如何處理?
    1. 你的系統一定要編譯器,同時需要有一堆編譯函式庫,因此,最好安裝上『 Development Tools 』的軟體群組功能較佳! 安裝完畢後,務必使用 which gcc, which gfortran 等確認一下有沒有這些編譯器! 因為程式系統可能需要用到 fortran 95 ,因此額外找一下 g95 或者是 g77 等軟體在不在!
    2. 我們需要安裝平行化處理函式庫,所以需要下載 MPICH 這套軟體:
      • 軟體官網在:https://www.mpich.org/
      • 上去查詢,下載最新版 (已經放置到 /home/student/Downloads/ 底下了)
      • 去查詢你所需要的安裝流程!(Documentation --> Guides --> MPICH Installers' Guide
      • 注意看上個步驟的 2.3 ,再回到 2.2 一步一步處理即可取得最終可運作的 mpich 喔!
      • 有個算 pi 的程式碼,可以操作一下,理解 mpich 的功效!
      • 將 MPICH 的相關路徑與相關變數寫入一個設定檔,例如 /usr/local/bashrc ,然後修改要使用的用戶們的 ~/.bashrc 喔!
      • 通常你不需要用到這個 mpich ,除非要往學術界做高深的研究...
    3. 我們即將安裝的軟體平台是需要用到 NetCDF 的檔案格式,這個格式可以快速存放資料,比資料庫還要方便!
      • 軟體官網在:https://www.unidata.ucar.edu/software/netcdf/
      • 下載最新版的 C 與 Fortran 軟體才行!(我放在 /home/student/Downloads 底下了)
      • 查詢安裝流程: Documentation --> Getting and Building netCDF ,先安裝 C (相關的前驅函式庫需要事先安裝妥當喔!一樣一步一步來!)
      • 承上,再安裝 fortran 版本即可! (一樣要查看 manual 喔!)
    4. 接下來還要使用模式會用到的 I/O API 這套軟體才行!
    5. 開始安裝 CMAQ 軟體
  3. SRPM 的使用
    1. 關於 SRPM,你應該要知道的基本功能:
    2. 所以你會知道,其實 CentOS 可以透過類似的方法,將取得的 SRPM 解開,修改原始碼,然後再釋出! 這過程你就應該可以了解了!
    3. 另外,當官網提供的軟體所加上的參數並無法符合你的需求時,就可以透過這個機制來動手修改 *.spec 的 %pre 部份, 或 make 部份,這樣就能夠處理好專屬於你自己的軟體功能了!