快轉到主要內容

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強制投放的廣告。有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。