快轉到主要內容

Distrobox使用例探討:在Ubuntu安裝Arch Linux AUR的套件

Linux系統 Linux使用技巧 Distrobox Arch Linux Ubuntu Arch User Repository
🗓️ 民國112年 癸卯年
✍ 切換正體/簡體字
目錄

本文示範Distrobox的其中一種用途:幹其他發行版的套件來用並與桌面環境整合,例如在Ubuntu使用pacman安裝Arch Linux的套件。

目標:在Ubuntu宿主機,使用Arch Linux容器,安裝AUR獨有的特製版MPV,配合VapourSynth MVTools補幀影片。在那之後,將容器裡安裝的MPV匯出到桌面,供宿主機無縫使用。

影片版解說

1. 目標說明
#

AUR(Arch User Repository)是Arch Linux官方儲存庫以外的重要套件補充來源,套件庫收錄許多實用與第三方修改過的套件,使用者可從此處取得許多專有軟體。若某AUR套件投票夠熱門則該套件就能進入官方儲存庫。

實際上AUR網站並無收錄真的套件,提供的是編譯指令碼(PKGBUILD),用戶下載AUR的儲存庫後,使用指令makepkg,系統即會自動按照PKGBUILD所寫內容,建置應用程式。由於此一特性,AUR得以收錄許多發行版無法打包,需要手動編譯的軟體。

本文要安裝的軟體「特製版MPV」之所以叫特製版,是由於大多數發行版在編譯MPV時並未啟用VapourSynth,所以Ubuntu要使用VapourSynth就得手動重新編譯MPV;Arch Linux則是有寫好的AUR套件能大幅簡化編譯流程。

若採用Ubuntu手動編譯,則未來更新不方便,安裝至系統亦很難解除安裝,編譯又會裝一堆多餘的依賴套件。故採用將MPV裝在Arch Linux容器內部的作法,依賴套件只會影響容器本身。在編譯好後將MPV暴露給主機使用。

2. 建立Arch Linux容器
#

  1. 安裝 Distrobox

  2. 建立使用Nvidia的Arch Linux容器,設定家目錄為~/distrobox/archlinux

distrobox create --name archlinux --image archlinux  --home ~/distrobox/archlinux --nvidia

distrobox enter archlinux
  1. 安裝yay套件管理器,用於管理AUR套件
sudo pacman -Syy

sudo pacman -S --needed git base-devel
git clone https://aur.archlinux.org/yay-bin.git
cd yay-bin
sudo makepkg -si

3. 安裝mpv-vapoursynth
#

  1. 安裝mpv-vapoursynth-git
yay -S mpv-vapoursynth-git
  1. 安裝vapoursynth-plugin-mvtools
sudo pacman -S vapoursynth-plugin-mvtools
  1. 參考 MVTools一文的說明,建立播放設定檔。由於我容器家目錄設定在~/distrobox/archlinux,所以.config/mpv等相關目錄要放在此。

  2. 將MPV匯出至宿主機

distrobox-export --app mpv
  1. MPV的dekstop檔案/home/user/.local/share/applications/archlinux-mpv.desktop可能要改成下述內容才能正常開啟
Exec=/home/user/.local/bin/distrobox-enter -n archlinux -- mpv --player-operation-mode=pseudo-gui
  1. 自此桌面環境便可啟動容器內的MPV

  2. 如果部份程式需要用到二進位檔(如 mpv-handler),則將容器的MPV二進位檔匯出至~/.local/bin。雖然匯出的二進位檔實際是一個shell指令稿,但跟一般應用程式沒二樣,MPV照樣可以接受傳入的參數。

distrobox-export --bin /usr/bin/mpv --export-path /home/user/.local/bin
  1. /home/user/.local/bin/mpv的檔案內容應該改成如下才能正常以指令播放影片
exec "/home/user/.local/bin/distrobox-enter" -n archlinux -- /usr/bin/mpv --player-operation-mode=pseudo-gui "$@"
  1. 再將該路徑加入PATH,若宿主機有裝MPV,在這裡因容器路徑在前,會優先以容器的MPV來播放。
echo "PATH=~/.local/bin:$PATH" >> /home/user/.bashrc
source .bashrc

相關文章

fontconfig調整Linux中文預設字體的優先順序,修正字體模糊、Emoji亂碼的問題
Linux系統 Linux使用技巧 Ubuntu Arch Linux
Linux如何設定開機自動執行應用程式
Linux系統 Linux使用技巧 Ubuntu Arch Linux
Ubuntu 22.04如何連接Apple Airpods Pro藍牙耳機並查看電量
Linux系統 Linux使用技巧 GNOME Ubuntu KDE Plasma

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur連結。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。