基于Ubuntu 14.04的Android Build Server搭建

1. 安装Ubuntu 14.04系统

Android系统编译推荐使用基于Ubuntu的64位系统。Ubuntu 12.04比较老了,Ubuntu 16.04又太新,这里选择Ubuntu 14.04的64位桌面版本。

下载地址:http://releases.ubuntu.com/14.04/

2. 安装ssh

安装完系统的第一件事情就是安装ssh,这样就可以远程登录操作了。

  • 安装openssh

sudo apt-get install openssh-server

  • 检查ssh服务

sudo ps -e | grep ssh

  • 修改配置

执行sudo vim /etc/ssh/sshd_config命令修改默认配置:

PermitRootLogin without-password --> PermitRootLogin yes

实际上这项是针对root用户登录,如果不需要root用录,可以忽略此步骤

  • 重启ssh服务

sudo service ssh restart

3. 安装Java

编译Android需要安装Java,不同版本的Android需要不同版本的Java,在编译不同版本的Android时需要在这些版本之间切换。具体各版本对Java环境的要求如下:

  • KitKat及以下需要Java6
  • LollipopMarshmallow需要Java7
  • AOSPmaster分支,以及Nougat需要Java8

通过PPA(Personal Package Archives)源进行安装,比较方便:

  • 安装java6
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java6-installer

同样的方法可以通过命令安装基于oracle的java7, java8和java9:

sudo apt-get install oracle-java{6,7,8,9}-installer
  • 安装java7java8

Ubuntu 14.04默认包含了java7的安装源,直接执行安装命令即可:
sudo apt-get install openjdk-7-jdk

sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-7-jdk
sudo apt-get install openjdk-8-jdk
  • Java各个版本之间的切换:
sudo update-alternatives --config java
sudo update-alternatives --config javac
sudo update-alternatives --config javadoc

以下是javajava-7-openjdk切换到java-6-oracle的例子:

$ sudo update-alternatives --config java
There are 3 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      auto mode
  1            /usr/lib/jvm/java-6-oracle/jre/bin/java          1         manual mode
  2            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      manual mode
  3            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1069      manual mode

Press enter to keep the current choice[*], or type selection number: 1
update-alternatives: using /usr/lib/jvm/java-6-oracle/jre/bin/java to provide /usr/bin/java (java) in manual mode
$ 

4. 安装android编译工具链

以下是仅针对Ubuntu 14.04的安装命令,其它版本如Ubuntu 12.04需要安装的软件跟这个命令中的不一样:

sudo apt-get install bison g++-multilib git gperf libxml2-utils make zlib1g-dev:i386 zip
  • g++-multilib安装错误
    安装中会出现错误:
ygu@stb-lab-04:~$ sudo apt-get install bison g++-multilib git gperf libxml2-utils make zlib1g-dev:i386 zip
[sudo] password for ygu: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
make is already the newest version.
make set to manually installed.
zip is already the newest version.
zip set to manually installed.
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 g++-multilib : Depends: gcc-multilib (>= 4:4.8.2-1ubuntu6) but it is not going to be installed
                Depends: g++ (>= 4:4.8.2-1ubuntu6) but it is not going to be installed
                Depends: g++-4.8-multilib (>= 4.8.2-5~) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

根据提示g++-multilib依赖于gcc-multilibg++g++-4.8-multilib,先安装其中一个:

sudo apt-get install gcc-multilib g++

再次执行安装命令即可。

  • 其它安装包
    除了以上的安装包外,部分机器因为编译其它软件可能还需要额外的安装包,例如:
sudo apt-get install flex zlib1g-dev:amd64
  • 更新后的安装列表
    根据以上操作,修改为安装以下软件列表:
sudo apt-get install bison g++ g++-multilib git gperf libxml2-utils make zlib1g-dev:i386 zip

5. 安装samba

  • 安装samba服务端
sudo apt-get install samba samba-common
  • 编辑samba.conf
sudo vim /etc/samba/smb.conf 

新增/opt目录作为共享目录,并需要登录才能访问:

[opt]
   comment = opt
   path = /opt
   writeable = yes
   browseable = yes
#  valid users = %S
   guest ok = no
  • 添加samba用户

将现有用户ygu添加作为samba用户,如果想新增一个用户,需要现在Ubuntu系统中添加该用户后再用smbpasswd -a添加。

ygu@stb-lab-04:~$ sudo smbpasswd -a ygu
New SMB password:
Retype new SMB password:
Added user ygu.
  • 重启samba服务
ygu@stb-lab-04:~$ sudo service nmbd restart
nmbd stop/waiting
nmbd start/running, process 20361
ygu@stb-lab-04:~$ sudo service smbd restart
smbd stop/waiting
smbd start/running, process 20340

为什么需要同时重启nmbdsmbd两项服务?

Samba服务器包括两个后台应用程序: smbdnmbd
+ smbdSamba的核心, 主要负责建立Samba服务器与Samba客户机之间的对话, 验证用户身份并提供对文件和打印系统的访问;
+ nmbd主要负责对外发布Samba服务器可以提供的NetBIOS名称和浏览服务,使Windows用户可以在“网上邻居”中浏览Samba服务器中共享的资源。

6. 安装tftp

  • 安装tftp服务端
sudo apt-get install xinetd tftpd tftp
  • 配置tftp服务
    执行sudo vim /etc/xinetd.d/tftp命令按如下内容编辑/etc/xinetd.d/tftp文件:
service tftp
{
protocol = udp
port = 69
socket_type = dgram
wait = yes
user = nobody
server = /usr/sbin/in.tftpd
server_args = /tftpboot
disable = no
}
  • 创建tftp目录并设置权限
sudo mkdir /tftpboot
sudo chmod -R 777 /tftpboot
sudo chown -R nobody /tftpboot
  • 重启xinetd服务
sudo service xinetd restart

7. 安装NFS服务

  • 安装NFS服务端
sudo apt-get install nfs-kernel-server
  • 创建NFS服务目录
mkdir -p /opt/nfs
  • 编辑/etc/exports
/opt/nfs *(rw,sync,no_root_squash,no_subtree_check)
  • 启动NFS server
sudo service nfs-kernel-server restart
  • 检查NFS目录
ygu@stb-lab-04:/opt$ sudo showmount -e
Export list for stb-lab-04:
/opt/nfs *

8. 启动进入命令行界面

对于build server,默认并不需要图形界面,所以选择开机直接进入命令行界面。

以下是修改配置文件使开机进入命令行的一种简便方法。

  • 编辑grub文件

执行sudo vim /etc/default/grub命令

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

修改为:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash text"

保存并退出

  • 执行update-grub
sudo update-grub

update-grub操作会更新/boot/grub/grub.cfg文件,重启后就会使用这个修改后的配置直接进入命令行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洛奇看世界

一分也是爱~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值