有遊戲/繪圖/音樂/...軟體可以玩嗎?


小王子問道: "那麼你擁有這些星星可以做什麼呢?" 生意人說: "我擁有這些星星, 我就很富有了啊!" -- 小王子

操作與說明

光知道自己擁有什麼是不夠的. 你擁有這個, 擁有那個, 但是都不知道如何使用它們, 那又如何? 我們真正想知道的, 是自己可以使用既有的東西做些什麼. 檔案那麼多, 散落在電腦各處, 很難整理/理解, 因而產生了 「套件」 的觀念. 一個 package 套件 把相關的檔案收集在一起, 合起來共同提供一個功能. 例如 inkscape 這個 package 提供了 「繪製向量圖」 的功能 (類似 illustrator), 裡面包含了 /usr/bin/inkscape 這個 executable 可執行檔、 /usr/share/inkscape/examples/ 底下的許多範例 svg 檔 ( scalable vector graphics) ... 還有其他許多相關檔案。

        apt-cache show inkscape		# inkscape 這個套件是做什麼用的?
	dpkg -L inkscape		# inkscape 這個套件裡面有什麼東西?
  1. 那麼 digikam 這個套件是做什麼用的? 裡面包含了那些檔案呢? file 這個套件呢?
  2. 請觀察: 這些 executables 的 paths 有什麼共通的地方?
        apt-cache show ls		# 看看 ls 這個套件是做什麼用的
        # 暫停! 不要往下做! 請先查字典, 看一下錯誤訊息說些什麼.
        which ls			# 不是明明有 ls 這個命令可以用嗎?
	dpkg -S /bin/ls			# 那麼這個 executable 是從那個套件來的?
        rpm -qil fileutils      
	apt-cache show coreutils	# 那麼, ... 這個套件是做什麼用的?
        # 原來套件的名稱與命令的名稱不一定相同.
        dpkg -l				# 電腦裡面到底裝了那些套件呢?
	apt-cache search RPG		# 搜尋一下網路上有哪些 RPG 相關套件
  1. 請搜尋一下, 看看有沒有和 "music" 相關的套件? 除了 inkscape 之外, 還有哪些與 "drawing" 相關的套件呢?
  2. 你找到的套件所包含的檔案當中, 有那些看起來像是 executables? 試著下命令執行看看吧!
  3. 請剪貼下面這句, 它也會印出所有套件的相關資訊, 但是是以 你所指定的格式 印出來: dpkg-query -W -f '${Installed-Size;6} ${Package} \n' 更多選項和欄位詳見 man dpkg-query

例如我指定列印時先留 20 格印套件名稱 (向左靠), 再留 6 格印套件佔用的空間大小 (向右靠), 最後換列。 這麼長的命令需要去記它嗎? 不如把它抄到你的筆記裡面去, 每次需要用的時候再剪貼上來就好了。 至於如何抄筆記, 下次再介紹。

於是我們可以找出 「佔用最多磁碟空間」 的前 20 名套件:

	sort -n -k 2 package-size.txt | tail -n 20
	sort -nr -k 2 package-size.txt | head -n 20

請注意: head 跟 tail 這兩個指令與查詢套件沒有關係. 它們關心的只是要截取上游的命令印出資料的最頭幾列或最尾巴幾列。

態度與文化

  1. 絕地 Tux 隨時都在觀察規律, 歸納規則, 從比較之中學習.
  2. 觀察出規律, 歸納出規則之後, 接下來就是設計實驗. 從已經學會的命令開始, 看不懂的部分照抄, 看得懂的部分每次修改一點點, 觀察輸出是否與你的期待相符. 每次作實驗要按 ENTER 之前, 請不要太衝動. 先預測會出現什麼結果, 再按下去 不管猜對或猜錯, 都比不猜要好. 不要亂改亂試, 那不是絕地 Tux 的學習之道.
  3. 不需要, 也沒有能力強記太多命令, 及命令的 options. 常用的自然會記起來; 記不起來就表示不夠常用, 不值得記. 需要用時要有能力找得到手冊/講義/筆記, 這才是重點.