The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

Ubuntu 8.04 LTS (Hardy Heron) 安裝筆記

前幾天替客戶安裝了兩台 Linux 主機,我選擇的 OS 版本是 Ubuntu 8.04 LTS (Hardy  Heron),安裝的過程中有些常見的問題需要處理,因此寫下一些心得筆記。

變更系統預設時區

由於安裝的過程選用 English 介面,而且時區選擇 Pacific,導致開完機後時區都是錯的,因次必須手動修正。

cd /etc
mv localtime localtime.OLD
cp /usr/share/zoneinfo/Asia/Taipei /etc/localtime

第一次手動校正系統時間

/usr/sbin/ntpdate tick.stdtime.gov.tw

將系統時間寫入到硬體時鐘

/sbin/hwclock -w

變更 Ubuntu Mirror Site 的位址

由於當時安裝的過程沒有網路,因次預設套件更新的位址都設定到 http://us.archive.ubuntu.com/ 我將他修改成 http://tw.archive.ubuntu.com/ 即可加快套件更新的速度。

  1. 編輯 /etc/apt/sources.list 檔案
  2. 將檔案中所有 http://us.archive.ubuntu.com/ubuntu/ 改成 http://tw.archive.ubuntu.com/ubuntu/
    若你用 vi 可利用以下指令批次修改:
    :%s/us.archive/tw.archive/g

    若你不在台灣,要找其他地方的 Mirror Site 可依據以下瀏覽動線尋找:

    1. 連結到 Mirroring Ubuntu 頁面
    2. 點進 Mirrors of Ubuntu 清單
    3. 選取靠近你的 Mirrors 站台(假設選取 National Taiwan University 站台)
    4. 變更 Display sources.list entries for 下拉式選單,選到 The Hardy Heron ( Ubuntu 8.04 )

    對剛接觸 Ubuntu 的人來說,會常常搞不清楚為什麼 Ubuntu 每個版本都有奇怪的英文名字,而且也很難對應到大家常講的版本編號,各位可以到 Ubuntu Release Code Names 頁面查看對應表,與瞭解命名的歷史。

    更新 Ubuntu 系統至最新版

    先更新套件資料庫

    apt-get update

    升級所有套件至最新版

    apt-get upgrade

    若有需要可以升級至下一個發行版本(可能會有相容性問題,但全新安裝應該是沒差)

    apt-get dist-upgrade

    變更預設編輯器的方法

    由於 Ubuntu 安裝好後的預設編輯器是 GNU nano,但我個人比較習慣使用 vi,以前我的變更方法都是修改 EDITOR 這個環境變數,但是在 Ubuntu 有個更好用的工具叫做 update-alternatives 可以一次修改所有程式的預設編輯器。你可以用以下指令修改:

    update-alternatives --all

    執行的過程如下(標紅色的部分就是我輸入的字串):

    There is only 1 program which provides rvim
    (/usr/bin/vim.tiny). Nothing to configure.
    
    There is only 1 program which provides traceroute6
    (/usr/bin/traceroute6.iputils). Nothing to configure.
    
    There is only 1 program which provides write
    (/usr/bin/bsd-write). Nothing to configure.
    
    There is only 1 program which provides awk
    (/usr/bin/mawk). Nothing to configure.
    
    There is only 1 program which provides rcp
    (/usr/bin/scp). Nothing to configure.
    
    There is only 1 program which provides locate
    (/usr/bin/mlocate). Nothing to configure.
    
    There is only 1 program which provides w
    (/usr/bin/w.procps). Nothing to configure.
    
    There is only 1 program which provides rlogin
    (/usr/bin/slogin). Nothing to configure.
    
    There are 4 alternatives which provide `pager'.
    
      Selection    Alternative
    -----------------------------------------------
              1    /bin/more
              2    /usr/bin/pg
    *+        3    /usr/bin/less
              4    /usr/bin/w3m
    
    Press enter to keep the default[*], or type selection number: 3
    Using '/usr/bin/less' to provide 'pager'.
    
    There is only 1 program which provides nc
    (/bin/nc.traditional). Nothing to configure.
    
    There is only 1 program which provides telnet
    (/usr/bin/telnet.netkit). Nothing to configure.
    
    There is only 1 program which provides ex
    (/usr/bin/vim.tiny). Nothing to configure.
    
    There is only 1 program which provides ftp
    (/usr/bin/netkit-ftp). Nothing to configure.
    
    There is only 1 program which provides rsh
    (/usr/bin/ssh). Nothing to configure.
    
    There is only 1 program which provides infobrowser
    (/usr/bin/info). Nothing to configure.
    
    There is only 1 program which provides vimdiff
    (/usr/bin/vim.tiny). Nothing to configure.
    
    There is only 1 program which provides mt
    (/bin/mt-gnu). Nothing to configure.
    
    There is only 1 program which provides rview
    (/usr/bin/vim.tiny). Nothing to configure.
    
    There is only 1 program which provides www-browser
    (/usr/bin/w3m). Nothing to configure.
    
    There is only 1 program which provides builtins.7.gz
    (/usr/share/man/man7/bash-builtins.7.gz). Nothing to configure.
    
    There is only 1 program which provides vim
    (/usr/bin/vim.tiny). Nothing to configure.
    
    There is only 1 program which provides rename
    (/usr/bin/prename). Nothing to configure.
    
    There is only 1 program which provides vi
    (/usr/bin/vim.tiny). Nothing to configure.
    
    There are 3 alternatives which provide `editor'.
    
      Selection    Alternative
    -----------------------------------------------
              1    /usr/bin/vim.tiny
              2    /bin/ed
    *+        3    /bin/nano
    
    Press enter to keep the default[*], or type selection number: 1
    Using '/usr/bin/vim.tiny' to provide 'editor'.
    
    There is only 1 program which provides rmt
    (/usr/sbin/rmt-tar). Nothing to configure.
    
    There is only 1 program which provides cpp
    (/usr/bin/cpp). Nothing to configure.
    
    There is only 1 program which provides view
    (/usr/bin/vim.tiny). Nothing to configure.
    
    There is only 1 program which provides pico
    (/bin/nano). Nothing to configure.

    查詢 Network / Broadcast 資訊的方式

    使用 Ubuntu 最討厭的地方就是一定要用手動設定網路參數 ( /etc/network/interfaces ),都沒有方便的工具可以使用,照理說只要有工具可以設定網路的話,只要知道 IP / Gateway / Netmask 就應該可以自動設定出 network 與 broadcast 參數才對。

    我在網路上找到一個 CIDR Calculator 線上計算 CIDR 的工具,只要知道你現在的 IP 位址與 Netmask 或 Mask Bits 就可以算出你可用的網路 IP Range,而第一個 IP 就是 network,最後一個 IP 就是 broadcast。

    網路介面的設定範例如下,這是設定固定 IP 的設定檔( /etc/network/interfaces )內容:

    # The loopback network interface
    auto lo
    iface lo inet loopback 
    
    # The primary network interface
    auto eth0
    iface eth0 inet static
            address 10.10.1.145
            netmask 255.255.255.224
            network 10.10.1.128
            broadcast 10.10.1.159
            gateway 10.10.1.158
            # dns-* options are implemented by the resolvconf package, if installed
            dns-nameservers 168.95.1.1
            dns-search miniasp.com

    安裝 VIM (Vi IMproved) 工具

    我熱愛的 vi 有個進階版,這才是我常用的版本,功能又多又強大。

    安裝方法:

    apt-get install vim vim-runtime ctags vim-doc vim-scripts

    設定我常用的編輯環境

    vi ~/.exrc

    設定內容如下:

    syntax on
    set tabstop=4
    set nowrap
    map #2 :set number
    map #3 :set nonumber

    其中的定義說明如下:

    • syntax on 代表要啟用 Syntax Highlight 功能
    • set tabstop=4 代表每個 Tab 符號只需要間隔四個 bytes
    • set nowrap 代表不要斷行
    • map #2 :set number 代表在 vi 編輯區時,若按下 F2 功能鍵並按下 Enter 鍵即可顯示行號
    • map #3 :set nonumber 代表在 vi 編輯區時,若按下 F3 功能鍵並按下 Enter 鍵即可關閉行號顯示

    安裝幾個常用的套件

    編譯工具 ( install + make + gcc + build-essential )

    apt-get install make gcc build-essential

    DenyHosts ( 可有效阻擋駭客對你的 Server 進行暴力式密碼攻擊 )

    apt-get install denyhosts

    Apache 2 + cronolog ( cronolog 可參考這篇文章 )

    apt-get install apache2

    PHP 5

    apt-get install php5 php5-cli libphp-adodb

    MySQL 5

    apt-get install mysql-server mysql-client phpmyadmin

    Postfix

    apt-get install postfix

    相關連結