如何在ArchLinux下建立Ubuntu开发环境

前因是我在我的arch下不知为何,编译CM总是失败,Android官方的推荐环境是Ubuntu,在一番谷歌后发现可以使用schroot建立一个ubuntu的开发环境来编译。

主要参考是这个帖子,感谢原作者:https://bbs.archlinux.org/viewtopic.paliases=priority,defaulthp?id=100039

网上的教程都是英文,而且不全,所以记录下我的过程。 8-)

1.首先需要的工具有

schroot
debootstrap(AUR)

schroot在community软件源里,debootstrap在AUR里,请自行安装。

$ yaourt -S schroot debootstrap

2.因为schroot的官方用途是在在arch64下用来构建arch32的开发环境。所以我们需要一番修改才能使用。

注:以下操作都在root权限下进行。

(1).删除/etc/schroot/chroot.d下的arch32.conf.example,不然在启动命令时会报错。

# rm /etc/schroot/chroot.d/arch32.conf.example

(2).编辑/etc/schroot/default下的copyfiles文件,注释/etc/resolv.conf

修改后文件如下:

# Files to copy into the chroot from the host system.
#
#
#/etc/resolv.conf

(3).编辑/etc/schroot/default下的nssdatabases文件,注释掉networks

修改后文件如下:

# System databases to copy into the chroot from the host system.
#
#
passwd
shadow
group
gshadow
services
protocols
#networks
hosts

3.建立ubuntu开发环境
(1).新建一个文件夹

# mkdir /opt/ubuntu

(2).建立初始ubuntu开发环境,在终端下运行

# debootstrap --arch amd64 precise /opt/ubuntu http://mirrors.163.com/ubuntu/

PS:其中的amd64为64位系统,更改为i386就是32位系统,precise为ubuntu版本,precise为12.04,可自行修改,最后的网址是163源,可以自行修改。
稍等片刻,将自行下载构建ubuntu环境。
(3).编辑/opt/ubuntu/etc/sudoers文件,添加用户权限。在root ALL=(ALL:ALL) ALL 一行下添加myusername ALL=(ALL:ALL) ALL
修改后如下:

........

# User privilege specification
root ALL=(ALL:ALL) ALL
myusername ALL=(ALL:ALL) ALL

.......

PS:其中的myusername,请修改为你的用户名。
4.配置shroot,编辑/etc/shroot/schroot.conf,在其最后添加如下一段:

[ubuntu]
description=Ubuntu
type=directory
directory=/opt/ubuntu
users=myusername
root-users=myusername,root
aliases=precise,default

PS:其中的myusername请更改为你的用户名。
5.进入ubuntu环境。

$ schroot -c ubuntu

可能会报错,无视即可,不是致命错误。

错误:15binfmt: which: no update-binfmts in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin)

6.这时就可以使用超强牛力的apt-get来安装所需软件,一切如同ubuntu。退出只需

$ exit

晒图:

添加新评论

咻~