其實在 Android 平板上通過第三方軟件 , 已經可以提供很多類似一般桌面 Linux 系統的工具了 。 常用的 Firefox、VLC、 LibreOffice 以及 終端模擬器 都有 Android 版本 , 結合 Busybox 也能擁有大部分 coreutils 工具 , 甚至還有諸如 Terminal IDE 這種一站式的開發工具方案 ( 不過不支持 Android 5.0+)。 若是想要接近桌面級別的體驗的話 , 比如像在下希望使用的 R 語言環境 , 還是安裝一個完整的 Linux 環境比較好 。
在 Android 平台上 , 若是 Unlock Bootloader 且獲取了 root 權限 , 那麼有一大票的方法可以將亦或完整亦或深度定制各種的 Linux 環境安裝上去 , 網上教程也有不少 , 不再贅述 。 本文描述的方法則是 :
首先請出主角 GNURoot 及 GNURoot Wheezy。 前者在應用程序級別提供一個虛擬根文件系統 , 允許在其上運行為其微調的桌面 Linux 發行版 ; 後者則顯而易見的是為其打造的 Debian Wheezy 版本 。
GNURoot 本身支持多個不同的 Linux 發行版 , 在下常用的 Fedora 亦在其中 , 不過由於打包的古老亦不再維護的 Fedora 17, 實在是不推薦使用 。 至於那個 Debian WheezyX 版本 , 稍候說明 。
GNURoot 的使用方法相當直觀 。 第一步選擇要創建的根文件系統 , 若是沒有安裝上面提到的 Wheezy 的話 , 在選擇後跳轉到 Play Store 提示安裝 。 稍事片刻創建完成後 , 就可以在第二步選擇啟動了 , 記得勾上 "Launch As Fake Root" 的選項 。 第三個選項則是刪除根文件系統 , 點擊後選中的根文件系統就會干淨的刪除 , 估計您不會想現在就點擊它吧 …
不過在點擊啟動之前 , 最好確認下您已經准備好了合適的輸入設備 , 因為即將迎接您的僅僅是一個終端模擬器 , 而安裝 R 的操作需要有不少終端的操作 。 若是有藍牙鍵盤最好 , 沒有的話推薦使用這款名為 Hacker's Keyboard 的虛擬鍵盤 , 可以提供很多終端下常用的按鍵 。
Debian Wheezy 這個根文件系統生成時間稍早 , 所以當然一上來是通過 apt-get
升級到最新版本了 。 除此之外 , 諸如 less
、`vim` 之類的工具也還是裝上才感覺正確了 。 有幾點注意的 :
/storage
下 ;由於 Debian 針對 Stable 的管理策略 , 要想用上最新的 R 必須使用 backport 的倉庫 。 根據 Debian Package for R Software 的描述 , 需要將如下倉庫信息添加到 /etc/apt/sources.list
文件末尾 :
deb http://<favorite-cran-mirror>/bin/linux/debian wheezy-cran3/
對於在下的網絡來說 , 既是以下地址 :
deb http://mirrors.ustc.edu.cn/CRAN/bin/linux/debian wheezy-cran3/
通過 echo
加重定向的方式可以非常方便的將其添加到文件末尾 。
然後添加加密公鑰到 :
apt-key adv --keyserver keys.gnupg.net --recv-key 381BA480
再下來就是安裝了 :
apt-get update
apt-get install r-base r-base-dev
這個過程比較漫長 , 一方面是源自訪問 Debian FTP 的速度 , 另外則是安裝及解包時間了 。 在耐心等待或者一覺之後 , 就可以開心的在平板上使用 R 語言啦 !
對於已經習慣使用圖形化 IDE Rstudio 的在下來說 ,R 終端還是需要熟悉下的 :
Rscript
, 而非 R CMD BATCH
。最後說說同一個作者出品的 WheezyX 及 GNURoot Debian。 前者是在啟動時初始化一個 vnc 服務 , 使得可以使用本地或遠程的 VNC 客戶端看到 X 圖形化界面 。 在下嘗試了在其基礎上安裝 LXDE 桌面環境 , 在極度漫長的等待失敗 , 無法啟動 LXDE。 後者是該名作者的新作品 , 按照其說明是新的結合 , 不過根據評論來看似乎還有不少問題需要處理 。
經過這麼一番折騰 , 感覺 Android 平板還是有不少可以把玩和折騰的地方 , 特別是對 Linux 用戶來說 。 若是您有更多折騰的經歷或心得 , 不妨來稿或者在評論中分享 。
在本文發布第三天,GNURoot Debian 發布了新版本 0.2,這兩天再次體(zhe)驗(teng)了下:
armhf
mount
輸出沒看懂vi
都沒有,創建根分區之後要安裝的常用工具不少…armel
的,而 Jessie Backport 裡的版本太老,於是想了想,干脆自己動手編譯了 R 3.2.1 版本,總共用時兩個半小時,還好Cannot open audit interface
,谷歌說可能跟內核或者掛載有關,已經提交 Issue Report 等反饋…上個周末 GNURoot Debian 發布了 0.26 版本,解決了之前反饋的問題,意味著可以編譯 RStudio Server 了!
--enable-R-shlib
選項的話(竟然不是默認啟用),重編譯先吧…dependencies/linux/install-dependency-debian
文件的內容處理編譯 RStudio 的依賴關系。由於 GNURoot Debian 默認沒有配置 sudo
,這裡建議還是手動安裝各個依賴比較好common/install-common
裡的內容進一步處理依賴關系,同樣還是建議參考,但是手動處理,其實也就是手動執行同目錄下的其他以 install 開頭的腳本。當然在上一步 debian 腳本中通過倉庫解決的就不需要了,比如 boost 和 pandocsrc/gwt/tools
目錄中的老版本,已經創建空的 pandoc 目錄,都是值得應用的。它還提到了使用 Oracle JDK 8 來加快 GWT 構建,這點我沒有嘗試,有興趣也可以用 OpenJDK 8 看看。這篇文檔較早,新版本還需要一些 clang 的頭文件,也是使用 install 腳本處理就好。make install
開始編譯了(沒看錯,沒有 make
步驟)。在 Z4 Tablet 上,GWT 構建果真使用了 90 分鐘,而 C++ 代碼部分的編譯用了 6 至 8 小時(具體時間未知,因為中途睡著了…)rstudio-server start
啟動,然後在系統浏覽器中輸入 `127.0.0.1:8787`,其中 8787 是 rstudio-server 的默認端口號,就能看到熟悉的 RStduio 登錄界面啦!Error occurred during transmission
…網上搜到的解決方案提示根分區滿了,呃,好像不相關啊…所以,RStudio Server 的確可以在 Andriod/GNURoot Debian 環境下正常編譯(盡管時間比較長),但是其正常工作,似乎還需要一些研究。
更多Android相關信息見Android 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=11