Debian

Debian 實用小提示 – 2016 年版

此篇內容主要基於 fortunes-debian-hints wiki page 以及套件內容[1], [2] 並加入個人經驗而成, 故和 Debian 套件中的內容以及中文翻譯會有所差異.

這些小提示亦可應用於 Debian 衍生的 Linux 發行版 (Ubuntu, kali etc..)

提示 #1:
  • 在 command line 中, 可透過 ‘reportbug’ 指令來回報套件中的 bug (須先安裝 reportbug 套件). 也可以透過 ‘reportbug –ui gtk2’ 來啟動圖型介面. 詳細用法可 man reportbug 或者 Debian wiki page [3].
提示 #2:
  • 可使用 ‘dpkg-reconfigure <package>’ 來修改已安裝套件的初始設定. 此外,  可安裝 ‘configure-debian’ 套件進行輔助, 此套件提供了統一的格式進行設定修改.
提示 #3:
  • 可使用  ‘apt-cache search <words>‘ 或 ‘aptitude search <words>’ 搭配關鍵字來搜查套件.
  • 上述指令會去下列檔案進行搜尋

– 全部可用的套件清單 : 檔案存放在 /var/lib/apt/lists/

– 已下載的套件 : 檔案存放在 /var/cache/apt/archives/

  • 如果搜尋不到, 看看是不是把上述相關檔案都砍了. 若是,

– 全部可用的套件清單: 可利用 ‘apt-get update’ 重新下載

– 已下載的套件 : 重新下載該套件

提示 #4:
  • 可透過  ‘apt-cache policy <packages>’ 來顯示套件下列資訊 (此指令可一次搜尋多個套件)

– 目前安裝的版本號

– 可供安裝的候選版本號

提示 #5:
  • 若需要打包客制化 kernel 成 Debian 套件, 可以使用 ‘make-kpkg’ 指令 [4] 進行打包 (須先安裝 kernel-package 套件)
  • 另, 也可以直接在 kernel 底下使用 ‘make deb-pkg’ 指令 [5] 進行打包, 這個指令位於  scripts/package 底下.
提示 #6:
  • 從 Debian 6 開始 即提供 Debian Long Term Support (LTS)  [6] –  提供發行版最少五年的支援, 主要由志願者以及其他公司來維護, 而非 Debian 官方.
  • 從 Debian 7 Wheezy  開始支援 arm 架構
  • 目前支援架構如下:
    1. i386
    2. amd64
    3. armel
    4. armhf
提示 #7:
  • 可使用  ‘cron-apt’ 套件來自動更新那些已安裝在系統上的套件
提示 #8:
  • 若使用 Debian 上遇到問題, 且無法透過使用手冊以及相關文件來解決. 可嘗試將問題寄到 debian-user@lists.debian.org
提示 #9:
  • 想知道現在運行的 Debian 版本, 可透過下列三種不同方法來取得
    1. 讀取 /etc/debian_version
    2. 安裝 ‘lsb_release’ 套件, 安裝後執行 ‘lsb_release -sc’ 指令
    3. 讀取 /etc/os-release
  • 想知道 Debian 版本對應的代碼 , ex: Debian 9 為 ‘stretch’, 可參照下列網頁

– https://www.debian.org/doc/manuals/debian-faq/ch-ftparchives.html#s-codenames

提示 #10:
  • Debian 通信論壇中會討論許多問題以及議題, 並討論出哪些需要放入 Debian 決策文件中. 你可以透過下列 URL 來瞭解並訂閱感興趣的論壇

– 使用簡介: https://www.debian.org/MailingLists/

– 論壇列表: https://lists.debian.org/

提示 #11:
  • 可定期閱讀 Debian Project News 以瞭解 Debian 相關新聞.

– https://www.debian.org/News/weekly/

提示 #12:
  • 透過安裝 ‘dctrl-tools’ 套件, 可方便的來搜尋可用套件 control 檔案
提示 #13:
  • 如果不習慣 Debian 套件中的預設選項, 你可以下載原始碼並且設定自定選項, 最後再包成套件. 詳情可參照下列 URL 章節 6.13, 6.14

– https://www.debian.org/doc/manuals/debian-faq/ch-pkg_basics.html

  • 大部份套件選項都能在執行時期設定, 只有在少部份的情況下才需要重新編譯套件
提示 #14:
  • 如果你想要持續關注某個套件相關訊息 (ex: bug 回報, 發行更新版等等), 可以在Package Tracking System 訂閱該套件. 詳情可參照下列 URL.

– https://www.debian.org/doc/manuals/developers-reference/resources.html#pkg-tracking-system

提示 #15:
  • 關於套件的相關文件, 存放在  /usr/share/doc/<package> 下面. 值得注意的是 README.Debian 通常會含有 Debian 特有的相關資訊
提示 #16:
  • 如果想查詢某特定檔案位於哪個套件. 可以使用 ‘apt-file’ 指令進行查詢 (須先安裝 apt-file 套件). 又或者可以透過下列 URL 進行查詢.

– https://www.debian.org/distrib/packages#search_contents

提示 #17:
  • 想要找人討論 Debian 嗎? 安裝好 Internet Relay Chat (IRC) client 軟體後連到irc.debian.org 中的 channel #debian
提示 #18:
  • 套件的品質管理系統位於 http://packages.qa.debian.org/<package>. 此頁面會提供維護者的QA頁面, 缺陷追蹤系統 (BTS) , 套件相關更新訊息, 以及在不同檔案庫中對應的版本號和其相關資訊.
提示 #19:
  • 如果想要編譯套件, 可透過下列方法下載套件原始碼並進行編譯

– 使用 ‘apt-get source’ 指令, 從mirror site 下載套件原始碼.

– 使用 ‘dget’ 指令, 從 web 下載套件原始碼. (須先安裝 devscripts 套件)

提示 #20:
  • ‘apt-show-versions’ 指令(須先安裝 apt-show-versions 套件) 可追蹤每一個安裝過的套件以及對應的版本, 特別適用於系統中安裝多個 Debian 版本的情形. (stable/ testing/ unstable)
提示 #21:
  • 即使系統處於無法連網的環境下, 依舊可使用 ‘apt-offline’  指令來安裝 Debian 套件. (透過USB隨身碟或者其他移動式儲存裝置)
提示 #22:
  • 透過 netselect-apt 套件來找到對於系統最快速的 Debian mirror site !
提示 #23:
  • 使用 ‘deborphan’ 指令(須先安裝 deborphan 套件) 可找出可移除之套件, 以減少不必要之磁碟空間.
  • 可以利用 ‘apt-get clean’ or ‘aptitude clean’ 指令來移除 APT  快取資料, 以減少不必要之磁碟空間.
提示 #24:
  • 如果想要感謝套件維護者處理問題的貢獻, 可利用 ‘reportbug –kudos’ 指令向維護者表達你的感謝
提示 #25:
  • 套件debian-reference含有許多 Debian 使用者以及開發者的參考文件, 亦可詳閱下列 URL

– http://www.debian.org/doc/manuals/reference

提示 #26:
  • 如果套件中沒有太多文件說明, 也許是要額外安裝 ‘<package>-doc’ 套件. 若套件含有大量文件, 會額外分開獨立成一個套件, 讓有需要的使用者自行安裝.
提示 #27:
  • 天有不測風雲, 人有旦夕禍福. 沒事請多備份. 個人大多使用 rsync 進行差異化備份.
提示 #28:
  • 如果你的機器非長時間處於開機狀態, 請善用anacron‘ 套件來確保定時執行的工作都有被確實執行.
提示 #29:
  • 如果要確保系統時間準確, 請安裝 ntp 套件並定時和 ntp server 校時.
提示 #30:
  • 安裝doc-base以及doc-central相關套件後, 即可在 http://localhost/ 閱讀文件.
提示 #31:
  • 使用指令 ‘systemctl disable <service>’, 下次開機後即不啟動該服務.
提示 #32:
  • 套件doc-debian 含有 Debian 相關文件可供閱讀.
提示 #33:
  • 套件 ‘devscripts 含有許多實用的腳本以優化 Debian , 例如 wnpp-alert, rc-alert 以及bts.
提示 #34:
  • 在有限流量的網路中使用 Debian sid, 可透過 ‘debdelta’ 套件來減少網路流量.
提示 #35:
  • 想玩遊戲嗎 ? 安裝套件goplay‘  可讓你選擇多種遊戲.
提示 #36:
  • 想要使用新版套件, 可是又不想升級成 ‘testing’ or ‘unstable’ 的  Debian 版本,該怎麼辦?

– Debian stable 版本請善用 backport [8]

– Debian oldstable 版本請善用 sloppy [9]

提示 #37:
  • 想要只下載某套件, 但下載後不安裝. 可執行下列指令

‘dget <pkgname>’

‘aptitude download <pkgname>’

提示 #38:
  • 第一次執行指令前, 可善用 man 來查詢指令的詳細用法. 指令如下:

– read in command line : ‘man <program-name>’

– read in browser : ‘man -H <program-name>’

提示 #39:
  • 可透過安裝套件 ‘bash-completion’ 來達到 bash tab 自動補齊之功能.
提示 #40:
  • 受不了 command not found 卻又不知道該安裝什麼套件嗎 ?  只要安裝套件command-not-found’, 之後每次發生command not found, 他就會告知該安裝哪些套件.
提示 #41:
  • 想要更瞭解套件內的資訊嗎 ?  可執行指令  ‘apt-cache show <package_name>’ ‘aptitude show <package_name>’
提示 #42:
  • 想要瀏覽某套件內的檔案嗎 ? 可執行下列指令

– 若該套件尚未被安裝 : ‘apt-file list <package_name>’

– 若該套件已安裝在系統中 :  ‘dpkg -L <package_name>’

– 若套件存放在本機上, 但尚未被安裝 : ‘dpkg -c  路徑/<package_name>’

提示 #43:
  • 想要暫時關閉防火牆 ?  可使用 ‘iptables-save | sed “/-/d;/^#/d;s/DROP/ACCEPT/” | iptables-restore’ 指令來移除所有規則, 並接受所有封包.
  • 關於 iptables的使用, 建議請多用 shorewall 來進行操控 [10].
提示 #44:
  • 關於 Debian 相關消息以及資訊, 可參考 http://identi.ca/debian. 更多關於 identica 的資訊位於 http://wiki.debian.org/Teams/Publicity/Identica
提示 #45:
  • 想要一行指令完成安裝以及移除套件的功能嗎 ?

‘aptitude install package1 package2- #delete package2’

‘aptitude install package1 package2_ #purge package2’

 

ref:

[1]: https://wiki.debian.org/FortunesDebianHints

[2]: https://packages.debian.org/fortunes-debian-hints

[3]: https://wiki.debian.org/reportbug

[4]: https://wiki.debian.org/BuildADebianKernelPackage

[5]: https://www.kernel.org/doc/Documentation/kbuild/kbuild.txt

[6]: https://wiki.debian.org/LTS/

[7]: https://www.debian.org/doc/manuals/debian-faq/ch-ftparchives.html#s-codenames

[8]: http://backports.debian.org/

[9]: https://backports.debian.org/Contribute/

[10]: http://www.shorewall.org/

發表迴響