Fedora 中的 Toolbox 簡介

2019-12-07 13:14:00

Toolbox 使你可以在容器中分類和管理開發環境,而無需 root 許可權或手動新增捲。它建立一個容器,你可以在其中安裝自己的命令列工具,而無需在基礎系統中安裝它們。當你沒有 root 許可權或無法直接安裝程式時,也可以使用它。本文會介紹 Toolbox 及其功能。

安裝 Toolbox

Silverblue 預設包含 Toolbox。對於 Workstation 和 Server 版本,你可以使用 dnf install toolbox 從預設倉庫中獲取它。

建立 Toolbox

開啟終端並執行 toolbox enter。程式將自動請求許可來下載最新的映象,建立第一個容器並將你的 shell 放在該容器中。

$ toolbox enterNo toolbox containers found. Create now? [y/N] yImage required to create toolbox container.Download registry.fedoraproject.org/f30/fedora-toolbox:30 (500MB)? [y/N]: y

當前,Toolbox 和你的基本系統之間沒有區別。你的檔案系統和軟體包未曾改變。下面是一個使用倉庫的範例,它包含 ~/src/resume 資料夾下的簡歷的文件原始檔。簡歷是使用 pandoc 工具構建的。

$ pwd/home/rwaltr$ cd src/resume/$ head -n 5 Makefileall: pdf html rtf text docxpdf: init pandoc -s -o BUILDS/resume.pdf markdown/*$ make pdfbash: make: command not found$ pandoc -vbash: pandoc: command not found

這個 toolbox 沒有構建簡歷所需的程式。你可以通過使用 dnf 安裝工具來解決此問題。由於正在容器中執行,因此不會提示你輸入 root 密碼。

$ sudo dnf groupinstall "Authoring and Publishing" -y && sudo dnf install pandoc make -y...$ make all #Successful buildsmkdir -p BUILDSpandoc -s -o BUILDS/resume.pdf markdown/*pandoc -s -o BUILDS/resume.html markdown/*pandoc -s -o BUILDS/resume.rtf markdown/*pandoc -s -o BUILDS/resume.txt markdown/*pandoc -s -o BUILDS/resume.docx markdown/*$ ls BUILDS/resume.docx  resume.html  resume.pdf  resume.rtf  resume.txt

執行 exit 可以退出 toolbox。

$ cd BUILDS/$ pandoc --version || lspandoc 2.2.1Compiled with pandoc-types 1.17.5.4, texmath 0.11.1.2, skylighting 0.7.5...for a particular purpose.resume.docx  resume.html  resume.pdf  resume.rtf  resume.txt$ exitlogout$ pandoc --version || lsbash: pandoc: command not found...resume.docx  resume.html  resume.pdf  resume.rtf  resume.txt

你會在主目錄中得到由 toolbox 建立的檔案。而在 toolbox 中安裝的程式無法在外部存取。

提示和技巧

本介紹僅涉及 toolbox 的表面。還有一些其他提示,但是你也可以檢視官方文件

  • toolbox –help 會顯示 Toolbox 的手冊頁。
  • 你可以一次有多個 toolbox。使用 toolbox create -c Toolboxnametoolbox enter -c Toolboxname
  • Toolbox 使用 Podman 來完成繁重的工作。使用 toolbox list 可以查詢 Toolbox 建立的容器的 ID。Podman 可以使用這些 ID 來執行 rmstop 之類的操作。 (你也可以在此文章中閱讀有關 Podman 的更多資訊。)