我嘗試將一部舊的 Android 手機變成 Linux 伺服器,但最終嘗試了多個 Linux 發行版。
但是,如何將你的 Android 手機變成一台可以與 Raspberry Pi 等裝置相媲美的家庭伺服器呢?這讓我有了另一個想法,並決定嘗試這個專案。畢竟,我已經嘗試過在智慧型手機上運行 PC 遊戲,所以運行 Linux 容器應該不會太難,對吧?嗯,其實也不完全是。由於沒有 root 權限的限制,我只能在手機上運行幾個發行版,而且最終我找到了一個比運行打包服務更好的在發行版之間切換的設定。
為該設定選擇適當的套件。
最後,我選擇設定 Temux + proot-distro。
這個專案最大的挑戰是找到一個不需root手機就能可靠運作的方案。以前,我買手機後會立即越獄。但考慮到現在各種應用程式的限制,我覺得最好還是避免root。
不幸的是,直接運行容器的方法需要 root 權限的機器,在某些情況下甚至需要自訂核心模組。這個限制意味著我不得不尋找替代方案。在非 root 權限的機器上執行虛擬機器(即使是透過 chroot 執行的虛擬機器)也存在類似的問題。
這讓我想到了一個替代方案,那就是 Termux,一個我經常在 Android 專案中使用的強大的終端模擬器。在 GitHub 上隨意瀏覽了一下,我找到了 proot-distro,它似乎是這次實驗的完美選擇。本質上,它的作用是創建一個 proot 環境(chroot 的使用者空間變體),讓我可以隨意修改 Linux 發行版。我當時完全沒想到,這很快就會讓我踏上一次發行版遷移之旅。
在 Android 上嘗試 Linux 發行版
proot-distro 一開始運作良好。
所有準備工作完成後,是時候將專案推進到下一階段了。在 Termux 中執行 `pkg install proot-distro` 指令後,我等了幾分鐘,等待必要的軟體包被拉取。然後,我執行 `proot-distro install debian` 指令,開始在我的智慧型手機上設定 Debian 環境。安裝完成後,我執行 `proot-distro login debian` 命令登入 Debian,果然,著名的 Debian 作業系統就在我的手機上運行了。
由於我無法使用 sudo 權限運行任何軟體包,我首先使用常用的 apt update 和 apt upgrade 命令更新軟體包。接下來,我嘗試安裝一些常規軟體包,包括 DokuWiki。但大多數軟體包都立即失敗了。我還嘗試安裝 Docker,但出現了一些錯誤。這些失敗的嘗試並沒有讓我氣餒,我轉而關注 Podman,但它也同樣無法運作。現在回想起來,這完全說得通,因為我必須修改一些核心才能讓容器運行時在我的手機上運行。
但我無法運行根應用程式。
在 GitHub 上瀏覽了一會兒後,我找到了 proot-apps 倉庫。你可能已經從名字就猜到了,它是 LinuxServer 創意開發者設計的應用程式集合,旨在在 proot 環境中運作。於是,我開始在我的 Debian 虛擬機器中安裝其中一些應用程式。不幸的是,那些為典型的 Docker 容器設計的應用程序,例如 Nextcloud,在我的設定中無法運行。有趣的是,錯誤代碼提到了 QEMU(或更確切地說,是 QEMU 缺失),而應用程式根本不需要它。
但是,我以為可以嘗試在其他發行版上運行這些軟體包。 Fedora 對 Podman 的支援更好,所以我想嘗試在其他發行版上運行容器運行時——但這也沒用。然後,我嘗試在 Arch Linux 環境中執行 proot-apps,但其他一些發行版根本無法運作。最後這一點最讓我困擾…
移至 Termux-Pentesting-Distro 儲存庫
但那時,我已經失去了最初專案的目的。
雖然 Debian、Fedora 和 Arch 等發行版“可以運行”,但我發現很多應用程式在安裝時都存在問題,甚至連像 neofetch 這樣的簡單程式都無法順利運行。在 GitHub 上找到 Termux-Pentesting-Distro 倉庫後,我決定再試一次。結果呢?這個倉庫不僅支援各種優秀的發行版,還能運行許多應用程式。雖然我無法運行任何視窗管理器或桌面環境,但我可以在手機上安裝許多發行版。
同樣,我能夠從新發行版的倉庫安裝 Emacs、Neovim 和其他必備的 Linux 應用程式。問題是什麼?到那時,我已經完全偏離了最初運行容器的目標,轉而嘗試各種優秀的發行版。說實話,Linux 發行版的數量之多讓我興奮不已——尤其是其中幾個發行版的名字都煥然一新。此外,每個版本的 Linux 都預先安裝了 Neofetch,如果有什麼比在發行版之間切換更讓我喜歡的,那就是看到 Neofetch 的強大功能。
目前,我對在各個發行版之間切換的奇怪體驗還算滿意,尤其是在我還沒找到在手機上運行基本容器的方法的情況下。我計劃很快再 root 一部稍舊的手機,這樣我就可以像其他人一樣,用 Docker 和 Podman 容器再次嘗試一下。
評論被關閉。