4.3. 搜尋軟體
前一頁 | 章 4. 安裝應用程式：套件與 Port | 下一頁

## 4.3. 搜尋軟體

FreeBSD 上可安裝的軟體清單不斷在增加， 有幾種方式可以來找你想安裝的軟體：

- FreeBSD 網站有維護一份可搜尋的最新應用程式清單，在 https://www.FreeBSD.org/ports/。 可以依應用程式名稱或軟體分類來搜尋 Port。

- 由 Dan Langille 維護的 FreshPorts.org，提供完整的搜尋工具並且可追蹤在 Port 套件集中的應用程式變更。註冊的使用者可以建立自訂的監視清單會自動寄發電子郵件通知 Port 的更新資訊。

- 若找不到指定的應用程式，可以先到網站 SourceForge.net 或 GitHub.com 搜尋，後然再回到 FreeBSD 網站 檢查該應用程式是否已被移植。

- 要搜尋 Binary 套件檔案庫中的應用程式可：

      # pkg search subversion
      git-subversion-1.9.2
      java-subversion-1.8.8_2
      p5-subversion-1.8.8_2
      py27-hgsubversion-1.6
      py27-subversion-1.8.8_2
      ruby-subversion-1.8.8_2
      subversion-1.8.8_2
      subversion-book-4515
      subversion-static-1.8.8_2
      subversion16-1.6.23_4
      subversion17-1.7.16_2

  套件名稱包含版本編號，且若 Port 使用 Python 為基礎，也會包含用來編譯該套件的 Python 版本。有些 Port 會有多個版本可使用，如 Subversion ，因編譯選項不同，有多個版本可用，這個例子中即指靜態連結版本的 Subversion。在指定要安裝的套件時，最好使用 Port 來源來指定該應用程式，Port 來源是指應用程式在 Port 樹中的路徑。再輸入一次 `pkg search` 並加上 `-o` 來列出每個套件來源：

      # pkg search -o subversion
      devel/git-subversion
      java/java-subversion
      devel/p5-subversion
      devel/py-hgsubversion
      devel/py-subversion
      devel/ruby-subversion
      devel/subversion16
      devel/subversion17
      devel/subversion
      devel/subversion-book
      devel/subversion-static

  `pkg search` 支援使用 Shell 萬手字元 (globs)、正規表示法、描述或檔案庫中的其他其他內容。在安裝 ports-mgmt/pkg 或 ports-mgmt/pkg-devel 之後，可參考 pkg-search(8) 以取得更多詳細資訊。

- 若 Port 套件集已安裝，有數個方法可以查詢 Port 樹中的本地版本。要找到 Port 所在的分類，可輸入 `whereis `file``，其中 `file` 是要安裝的程式：

      # whereis lsof
      lsof: /usr/ports/sysutils/lsof

  或者，也可使用 echo(1)：

      # echo /usr/ports/*/*lsof*
      /usr/ports/sysutils/lsof

  請注意，這也會顯示已下載至 `/usr/ports/distfiles` 目錄中任何已符合條件的檔案。

- 另一個方法是使用 Port 套件集內建的搜尋機制來找軟體。要使用搜尋的功能需先 cd 到 `/usr/ports` 然後執行 `make search name=program-name`，其中 `program-name` 代表軟體的名稱。舉例搜尋 `lsof`：

      # cd /usr/ports
      # make search name=lsof
      Port:   lsof-4.88.d,8
      Path:   /usr/ports/sysutils/lsof
      Info:   Lists information about open files (similar to fstat(1))
      Maint:  ler@lerctr.org
      Index:  sysutils
      B-deps:
      R-deps:

  ### 提示:

  內建的搜尋機制會使用索引檔內的資訊。若出現訊息指出需要 `INDEX` 檔，可執行 `make fetchindex` 來下載最新的索引檔。當 `INDEX` 檔存在時，`make search` 方可執行請求的搜尋動作。

  “Path:” 此行代表 Port 的所在位置。

  若不要接受這麼多資訊，可使用 `quicksearch` 功能：

      # cd /usr/ports
      # make quicksearch name=lsof
      Port:   lsof-4.88.d,8
      Path:   /usr/ports/sysutils/lsof
      Info:   Lists information about open files (similar to fstat(1))

  若要進行更有深度的搜尋，使用 `make search key=`string`` 或 `make quicksearch key=`string`` 其中 `string` 是要搜尋的文字。該文字可以是一部份的註解、描述或相依套件，當不清楚程式的名稱時可以找到與特定主題相關的 Port。

  當使用 `search` 或 `quicksearch` 時，搜尋的字串不分大小寫。 搜尋 “LSOF” 會與搜尋 “lsof” 產生相同的結果。

前一頁 | 上一層 | 下一頁
4.2. 安裝軟體的概要 | 起始頁 | 4.4. 使用 pkg 管理 Binary 套件

本文及其他文件，可由此下載： ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/。

若有 FreeBSD 方面疑問，請先閱讀 FreeBSD 相關文件，如不能解決的話，再洽詢 <questions@FreeBSD.org>。
關於本文件的問題，請洽詢 <doc@FreeBSD.org>。