其实在 Android 平板上通过第三方软件 , 已经可以提供很多类似一般桌面 Linux 系统的工具了 。 常用的 Firefox、VLC、 LibreOffice 以及 终端模拟器都有 Android 版本 , 结合 Busybox 也能拥有大部分 coreutils 工具 , 甚至还有诸如 Terminal IDE 这种一站式的开发工具方案 ( 不过不支持 Android 5.0+)。 若是想要接近桌面级别的体验的话 , 比如像在下希望使用的 R 语言环境 , 还是安装一个完整的 Linux 环境比较好 。

在 Android 平台上 , 若是 Unlock Bootloader 且获取了 root 权限 , 那么有一大票的方法可以将亦或完整亦或深度定制各种的 Linux 环境安装上去 , 网上教程也有不少 , 不再赘述 。 本文描述的方法则是 :

无需 root, 无需修改系统分区或者 Bootloader;

安装的是正常的 Debian Linux ARM 版本 , 可从官方仓库获得更新 , 兼容第三方 backport 仓库 ;

允许多个 Linux 发行版共存 , 非常方便的删除或重建 , 无需担心在系统或者 SD 卡上有异样残留 。

首先请出主角 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` 之类的工具也还是装上才感觉正确了 。 有几点注意的 :

默认登录即是 root 账户 ;

主机的内置存储和 SD 记忆卡等设备被挂载到 /storage 下 ;

由于 Android 系统权限限定 , 仅能写入内置存储 , 不能写入外置 SD 卡 ;

包括 GNURoot 及 GNURoot Wheezy 在内的程序都无法移动到 SD 卡 , 因为 SD 卡上没有可执行权限的概念 。

由于 Debian 针对 Stable 的管理策略 , 要想用上最新的 R 必须使用 backport 的仓库 。 根据 Debian Package for R Software 的描述 , 需要将如下仓库信息添加到 /etc/apt/sources.list 文件末尾 :

deb http:///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。

使用 help.start() 可以启动 HTML 的帮助手册页面 , 可以在 Android 系统环境下的浏览器中查看 。

类似的 , 图形绘制及表格之类的 , 也可以通过嵌套在 Shiny 的方式输出到 Web 页面 , 之后再 Android 系统浏览器中查看 。

最后说说同一个作者出品的 WheezyX 及 GNURoot Debian。 前者是在启动时初始化一个 vnc 服务 , 使得可以使用本地或远程的 VNC 客户端看到 X 图形化界面 。 在下尝试了在其基础上安装 LXDE 桌面环境 , 在极度漫长的等待失败 , 无法启动 LXDE。 后者是该名作者的新作品 , 按照其说明是新的结合 , 不过根据评论来看似乎还有不少问题需要处理 。

经过这么一番折腾 , 感觉 Android 平板还是有不少可以把玩和折腾的地方 , 特别是对 Linux 用户来说 。 若是您有更多折腾的经历或心得 , 不妨来稿或者在评论中分享 。

7 月 22 日更新

在本文发布第三天,GNURoot Debian 发布了新版本 0.2,这两天再次体(zhe)验(teng)了下:

与 GNURoot 完全不同,无法延用之前创建的根文件系统,且仅支持 Debian

升级到 Debian Jessie 8.1 Stable 版本,且架构支持硬浮点 armhf

挂载以及和系统交互的方式变化不少,$HOME 分区可以直接在 Android 系统下访问,还有一些奇怪的 mount 输出没看懂

附带的 Jessie 特别精简,连 vi 都没有,创建根分区之后要安装的常用工具不少…

CRAN Backport 里的 R 貌似只有针对 armel 的,而 Jessie Backport 里的版本太老,于是想了想,干脆自己动手编译了 R 3.2.1 版本,总共用时两个半小时,还好

至少在我使用的 Z4 Tablet 上,安装部分应用(比如 git, openssh-client)会提示 Cannot open audit interface,谷歌说可能跟内核或者挂载有关,已经提交 Issue Report 等反馈…

理论上讲 RStudio Server 也可以编译,但是至少需要解决上述的问题才能安装必要的依赖关系。

8 月 4 日更新

上个周末 GNURoot Debian 发布了 0.26 版本,解决了之前反馈的问题,意味着可以编译 RStudio Server 了!

首先前往 RStudio 官网下载源代码包。

解压到某处之后,仔细阅读其中的 INSTALL 说明。

RStudio 需要 R 的共享库,如果之前手动编译 R 的过程中没加上 --enable-R-shlib 选项的话(竟然不是默认启用),重编译先吧…

根据说明,可以借助 dependencies/linux/install-dependency-debian 文件的内容处理编译 RStudio 的依赖关系。由于 GNURoot Debian 默认没有配置 sudo,这里建议还是手动安装各个依赖比较好

几点需要提醒的:

没必要特别安装 OpenJDK 6,在编译 R 的时候所用的 OpenJDK 7 即可

无需担心 AppArmor、Qt SDK 的依赖,Server 版本用不上

解决完 debian 文件所描述的后,参照 common/install-common 里的内容进一步处理依赖关系,同样还是建议参考,但是手动处理,其实也就是手动执行同目录下的其他以 install 开头的脚本。当然在上一步 debian 脚本中通过仓库解决的就不需要了,比如 boost 和 pandoc

此时可以参考 RStudio 论坛上的解答,包括下载最新版本的 Closure Complier 来替换 src/gwt/tools目录中的老版本,已经创建空的 pandoc 目录,都是值得应用的。它还提到了使用 Oracle JDK 8 来加快 GWT 构建,这点我没有尝试,有兴趣也可以用 OpenJDK 8 看看。这篇文档较早,新版本还需要一些 clang 的头文件,也是使用 install 脚本处理就好。

全部依赖关系处理结束之后,返回源代码顶层目录,按照 INSTALL 文档的说明,创建 build 目录并调用 cmake 创建编译配置文件,

若一切正常,就可以使用 make install 开始编译了(没看错,没有 make 步骤)。在 Z4 Tablet 上,GWT 构建果真使用了 90 分钟,而 C++ 代码部分的编译用了 6 至 8 小时(具体时间未知,因为中途睡着了…)

结束之后,继续按照 INSTALL 文档的说明,创建服务所用的运行账户、添加 init.d 配置文件、创建管理脚本符号链接、创建运行时所必要的目录

之后就可以通过 rstudio-server start 启动,然后在系统浏览器中输入 `127.0.0.1:8787`,其中 8787 是 rstudio-server 的默认端口号,就能看到熟悉的 RStduio 登录界面啦!

不过,别高兴的太早…你会发现 root 账户登录不能,提示需要密码,设置密码后还是不行,创建个全新的普通用户,问题依旧,提示 Error occurred during transmission…网上搜到的解决方案提示根分区满了,呃,好像不相关啊…

尝试换用 systemd 的启动脚本时收到提示说 dbus 不可用,不知道这个会不会是原因?

所以,RStudio Server 的确可以在 Andriod/GNURoot Debian 环境下正常编译(尽管时间比较长),但是其正常工作,似乎还需要一些研究。

debian linux手机安装,在 Android 系统上安装 Debian Linux 与 R相关推荐

  1. 绝对精华,大牛教你在Android系统上安装linux发行版

    Install linux distribution (Debian/Ubuntu/Kali Linux/Fedora/openSUSE/Gentoo/RootFS/Arch Linux) on An ...

  2. 安卓设备刷linux发行版,绝对精华,大牛教你在Android系统上安装linux发行版

    Install linux distribution (Debian/Ubuntu/Kali Linux/Fedora/openSUSE/Gentoo/RootFS/Arch Linux) on An ...

  3. 在linux(ubuntu16.04)系统上安装RTL8822CE网卡驱动

    在linux(ubuntu16.04)系统上安装RTL8822CE网卡驱动 1.下载8822CE驱动https://github.com/alanfox2000/realtek-linux/tree/ ...

  4. git安装 perl ubuntu_Ubuntu系统上安装Git

    Git是一个开源的分布式版本控制系统,它在全球范围内得到广泛的使用.互联网上还有像GitHub这样的网站提供了免费的Git服务,很多流行的开源项目都使用了Git来托管项目,比如Perl.Ruby on ...

  5. linux chroot安卓,在Android设备上安装 GNU/Linux Chroot 环境

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 3-安装与配置系统 3-Install and Configure system 因为是chroot环境,系统不用启动,所以过程比安装ARCH(x86)更 ...

  6. ubuntu安装java_如何在Ubuntu系统上安装Java

    作为Java开发人员,您将需要一次或两次在系统上安装它.与普遍的看法相反,在Ubuntu计算机上安装Java非常简单.在本文中,我们将说明以下三种在Ubuntu系统上安装稳定版本的Java的方法: 通 ...

  7. linux中wine yum安装,分享|在基于RedHat或Debian的系统上安装 Wine 1.7

    Wine,Linux上最流行也是最有力的软件, 可以顺利地在Linux平台上运行Windows程序和游戏. 这篇文章教你怎么在像CentOS, Fedora, Ubuntu, Linux Mint一样 ...

  8. metasploit下载教程linux,在Debian 10/9系统上安装Metasploit Framework的方法

    本文介绍在Debian 10/9操作系统上安装Metasploit Framework的方法,以脚本的方式安装,全程相当的简单,按照以下步骤操作即可. 在Debian 10/Debian 9上安装Me ...

  9. Android驱动(1)---Ubuntu中为Android系统上编写Linux内核驱动程序实现方法

    Ubuntu中为Android系统上编写Linux内核驱动程序实现方法 本文主要介绍在Ubuntu 上为Android系统编写Linux内核驱动程序, 这里对编写驱动程序做了详细的说明,对研究Andr ...

最新文章

  1. 关于滴水的VT调试器
  2. 每日英语:Relationship Repair: 10 Tips for Thinking Like a Therapist
  3. css布局:块级元素的居中
  4. 错误:readline/readline.h:没有那个文件或目录解决方法
  5. c语言switch scanf语句,c语言switch语句 谢谢·!~!~
  6. 20145234黄斐《网络对抗技术》实验六-信息搜集与漏洞扫描
  7. 深入理解JavaScript系列(13):This? Yes,this!
  8. 三星服务器锁微信,三星手机微信支付设置指纹锁步骤
  9. 小米路由做文件共享服务器,群晖NAS+小米路由器文件直接传输
  10. 免费开通量化软件恒生ptrade和讯投qmt
  11. netlink_unicast return -11 (EAGAIN)
  12. HTML中属性问题以及通信问题总结
  13. 闲鱼的统一跨端 API 方案 —— Uni API
  14. 如何理解面向对象的封装、继承、多态
  15. 165体重_女生165cm标准体重
  16. 嵌入式还有哪些风口值得入?
  17. 轻开商贸企业入门级电子商务 B2C网站公共版
  18. 计算机毕业设计 SSM+Vue生鲜供应平台 生鲜商城平台 生鲜超市平台Java Vue MySQL数据库 远程调试 代码讲解
  19. linux中c语言kbhit函数用法,linux下kbhit()函数 getch函数。
  20. 7.7黄金大幅回调今日行情分析1790做多美联储会议纪要来袭多头承压

热门文章

  1. 解决本地新建项目推送到码云失败的问题
  2. 用计算机语言写祝福语,程序员祝福语
  3. 第1章 人工智能时代,人人都应该学会利用AI这个工具 / 1-6 Pandas、Numpy、Matplotlib实操
  4. rhce考试试题以及答案_RHCE考试题
  5. 计算机网络——哈工大李全龙
  6. python cheat sheet
  7. macM1下PD虚拟机中ubuntu安装git过程中apt-get update失败、E: 部分索引文件下载失败等问题
  8. Longhorn安装使用全攻略(下)(转)
  9. [翻译]为EXPRESSION WEB 4添翼—如何支持HTML5设计开发!
  10. “科林明伦杯”哈尔滨理工大学第十届程序设计竞赛——C.面积【签到题】