• <menu id="sssag"></menu>
  • <menu id="sssag"></menu>
  • 在 Debian 和 Ubuntu 上安裝 Cutefish 可愛魚

    • 版權聲明:原創文章,未經博主允許不得轉載

    CutefishOS 是一個可愛好看的新 Linux 發行版,當前最新版本為 0.8beta 。這是一個基于 Debian 的發行版,從其鏡像源配置就可以明顯地看出來。它和 Debian 的關系看起來就像 Linux Mint 和 Ubuntu 的關系。

    為啥要寫這一篇呢,因為 CutefishOS 雖然基于 Debian ,但是只提供 AMD64 體系結構的官方支持。如果你的設備恰好不是 x86 的(比如 ARM 或 MIPS),那么你不能使用 CutefishOS 來體驗 Cutefish 桌面環境;反之如果你恰好使用 AMD64 體系結構的 Debian bullseye ,那么你可以心安理得地使用 CutefishOS 的軟件源,這在后面會再次提到。

    CutefishOS 官方在其 github 項目的所有倉庫里都提供了構建 deb 包所需的配置文件,我們可以輕松地使用 dpkg-buildpackage 來構建其二進制軟件包。

    我在 Debian11 bullseye 和 Ubuntu 21.10 及以上進行了測試,都是可以正常編譯通過的;在 Debian10 和 Ubuntu20.04 都出現了一些問題,主要是 Qt 版本太低導致的。在 Debian11 上, mips64el (龍芯)和 aarch64 (樹莓派)也都是好的。另外在 Loongarch64 上,你可以選擇在 Loongnix20 上編譯,雖然并沒有測試過(沒有設備);至于 mips64el 的 Loongnix20 ,已經測試過 Qt 版本過低(和 Debian10 的情況一致)。

    由于這是一個非常年輕的桌面環境,只完成了最基本的桌面功能,對于一些復雜的配置并不支持,所以暫時只建議嘗鮮,不太建議日常使用(不過你也可以在每次倉庫出現新的 commit 時重新構建追新)。

    使用官方源安裝

    如果你恰好使用 AMD64 體系結構的 Debian bullseye ,那么官方源是可以使用的。

    這個部分并沒有被充分測試(并沒有可供測試的機器),特別是在 bullseye 以上版本中,所以只作為一個可行的思路。

    添加鏡像源和密鑰

    只需要將其添加到你的 /etc/apt/sources.list 中:

    deb http://packages.cutefishos.com bullseye main
    

    然后添加 cutefishos 的 gpg key 即可,這里給出鏈接: http://packages.cutefishos.com/key/cutefishos.gpg.key

    更新包緩存并安裝

    $ sudo apt-get update
    $ sudo apt-get install cutefish
    

    源碼編譯安裝

    正篇開始,這里默認你會使用 git 和 apt 包管理器。

    配置網絡

    如果你的網絡狀態不佳,那么可能需要借助一些工具。在瀏覽器,你可以通過 SwitchyOmega 來管理你的網絡連接;而對于 git ,你可以考慮設置 HTTP_PROXYHTTPS_PROXY 環境變量,這里給出一個示例,注意這個設置是臨時的:

    export HTTPS_PROXY=http://127.0.0.1:7890
    

    需要編譯的包

    在 CutefishOS 的項目倉庫列表,可以看到所有的軟件包倉庫,其中大部分都是需要我們編譯的,這里列表如下:

    他們的編譯過程全部都是一樣的,所以下面將以 core 為例。

    準備必要的編譯工具

    對于 Debian ,需要安裝 build-essentialdevscripts 兩個軟件包:

    $ sudo apt-get install build-essential devscripts
    

    對于 Ubuntu ,除了上面的兩個包,還需要安裝 equivs

    $ sudo apt-get install equivs
    

    build-essential

    在 Debian 和 Ubuntu 上,該包包含了 libc6-dev 、 gcc 、 g++ 、 make 、 dpkg-dev 等編譯 deb 包所必須的軟件包。不過不包含 cmake 、 pkg-config 等同樣常用的工具。

    devscripts

    正如其包名所示的,它包含了一些用于輔助進行軟件包構建的腳本。之后需要用到的 mk-build-deps 命令就出自該軟件包。

    mk-build-deps 是一個輔助安裝編譯依賴的腳本,它讀取 debian/control 并安裝其中列出的編譯依賴。它并不會直接安裝這些依賴包,因為直接安裝會導致它們被標記為手動安裝,編譯完成以后無法方便地卸載(畢竟只在編譯時需要,軟件包運行時大概率不需要它們),而是生成一個引用這些編譯依賴包的名為 *-build-deps 空軟件包并安裝。這樣做的結果是所有編譯依賴包被標記為自動安裝,只要卸載這個 *-build-deps ,其他軟件包通過 apt-get autoremove 就可以方便地卸載,還給我們一個干凈的系統環境。

    equivs

    在 Debian 下,這個軟件包被 devscripts 依賴,但是清楚為啥, Ubuntu 的 devscripts 并沒有依賴這個包并導致了后面的工作出錯,所以我們只好手動安裝之。

    以 core 為例

    以 core 為例,編譯 deb 包,其他包的過程與此相同。

    克隆軟件倉庫

    我們克隆該倉庫, --depth=1 的作用是只克隆最近一次 commit ,這樣需要拉取的數據不會過多??寺⊥瓿珊筮M入到克隆的目錄,此時目錄名為 core 。

    $ git clone --depth=1 https://github.com/cutefishos/core.git
    $ cd core
    

    安裝編譯依賴包

    通過前面介紹過的 mk-build-deps 來完成依賴包的安裝。 --install 選項的涵義是生成軟件包后安裝, --remove 的涵義是安裝軟件包后自動卸載, --root-cmd sudo 的涵義是提權使用 sudo 命令。但是不知道是不是我理解錯了(但是 man 是這么寫的呀),安裝生成的軟件包后并沒有自動卸載,需要手動卸載 *-build-deps 。

    $ mk-build-deps --install --remove --root-cmd sudo
    

    編譯軟件包

    使用 dpkg-buildpackage 來自動編譯和構建, -b 的涵義是只生成二進制包:

    $ dpkg-buildpackage -b -uc -us
    

    如果出現了奇怪的編譯錯誤,可以試著關閉多線程:

    $ dpkg-buildpackage -b -uc -us -J1
    

    之前出現了奇怪的鏈接錯誤,在 Debian11 穩定復現,不知道原理,也不知道為啥關閉多線程就正常了。 Debian sid 沒發現報這個錯。

    在構建完成后,你應該在上級目錄看到多出來類似如下的四個文件,將文件名中的 mips64el 替換成你自己的體系結構如 amd64 或 arm64 應該就是你得到的文件的名稱:

    • cutefish-core_0.8_mips64el.deb
    • cutefish-core-dbgsym_0.8_mips64el.deb
    • cutefish-core_0.8_mips64el.changes
    • cutefish-core_0.8_mips64el.buildinfo

    其中 cutefish-core_0.8_mips64el.deb 是你需要的軟件包, cutefish-core-dbgsym_0.8_mips64el.deb 是軟件包的 debug symbol ,另外兩個可以忽略。我們通常只需要保留第一個即可,其他東西包括克隆下來的代碼都可以刪除了。

    卸載編譯依賴

    對于編譯 core ,你可以通過下面的命令來卸載編譯依賴:

    $ sudo apt-get remove cutefish-core-build-deps
    $ sudo apt-get autoremove
    

    如果你編譯了所有軟件包,希望卸載全部依賴,首先參考下面的命令搜索所有 mk-build-deps 生成的軟件包名:

    $ apt-cache search --names-only "^.*?-build-deps$"
    

    檢查確認包名后卸載他們:

    $ sudo apt-get remove <package_name>
    $ sudo apt-get autoremove
    

    安裝軟件包

    由于你不清楚他們之間的依賴關系,我不推薦你逐個安裝他們,所以將所有生成的軟件包一起安裝:

    $ sudo apt-get install ./xxx1.deb ./xxx2.deb ./xxx3.deb ...
    

    或者將他們放到一個目錄中然后一起安裝:

    $ sudo apt-get install ./*.deb
    

    注意如果安裝 cutefish-sddm-theme 時提示配置文件是選擇打包者提供的版本還是已經存在的版本時,請選擇打包者提供的版本,這樣你的 sddm 會被設置成 Cutefish 的主題。

    自動化的編譯腳本

    我為了方便自己使用,編寫了自動化的編譯腳本。這個相對比較自動化,會從 github 逐個拉取需要構建的倉庫并構建軟件包,構建完成后記錄已經編譯的包并清理工作區。因此,如果編譯出現錯誤,你可以解決錯誤后重新運行腳本,腳本會從上次出錯的軟件包開始繼續構建。對于需要單線程構建的情況,也有 --noparallel 選項實現,具體可以查看腳本的源碼:

    https://github.com/weilinfox/miscfiles/blob/master/build_script/cutefish_desktop.sh

    使用方法:

    $ mkdir cutefish
    $ cd cutefish
    $ wget https://github.com/weilinfox/miscfiles/raw/master/build_script/cutefish_desktop.sh
    $ chmod +x cutefish_desktop.sh
    $ ./cutefish_desktop.sh
    

    默認多線程以加快編譯速度,如果需要以單線程的方式:

    $ ./cutefish_desktop.sh --noparallel
    

    全部構建完成后,可以在 debs 目錄中找到構建的軟件包。

    注意這個腳本并不會幫你安裝這些軟件包和卸載編譯依賴,請參考上面一節中的“卸載編譯依賴”和“安裝軟件包”手動操作。

    Loongnix20 for loongarch64 的特別說明

    在腳本的第 124 行有一行注釋:# package on Loongnix is too old to build cutefish 。但如果你恰好是 loongarch64 版本的 Loongnix20 ,興許你可以嘗試一下編譯。請取消第 125-127 行的注釋(去除行首的 #),然后運行腳本。

    從 Cutefish 啟動

    Cutefish 建議從 SDDM 啟動。在 SDDM 的啟動界面,選擇 Cutefish 作為啟動的桌面環境,直接登陸即可。

    不出意外,你會得到如下圖的桌面環境。

    Cutefish

    by SDUST weilinfox

    posted @ 2022-03-12 22:21  八衛門貍  閱讀(19)  評論(0編輯  收藏  舉報
    国产在线码观看超清无码视频,人妻精品动漫H无码,十大看黄台高清视频,国产在线无码视频一区二区三区,国产男女乱婬真视频免费,免费看女人的隐私超爽,狠狠色狠狠色综合久久蜜芽