基于Ubuntu 14.04的Android Build Server搭建

来源:互联网 发布:跟着李炎恢学php 编辑:程序博客网 时间:2024/06/13 22:24

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/javasudo apt-get updatesudo 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/ppasudo apt-get updatesudo apt-get install openjdk-7-jdksudo apt-get install openjdk-8-jdk
  • Java各个版本之间的切换:
sudo update-alternatives --config javasudo update-alternatives --config javacsudo update-alternatives --config javadoc

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

$ sudo update-alternatives --config javaThere 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 modePress enter to keep the current choice[*], or type selection number: 1update-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... DoneBuilding dependency tree       Reading state information... Donemake 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 haverequested an impossible situation or if you are using the unstabledistribution that some required packages have not yet been createdor 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 installedE: 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 yguNew SMB password:Retype new SMB password:Added user ygu.
  • 重启samba服务
ygu@stb-lab-04:~$ sudo service nmbd restartnmbd stop/waitingnmbd start/running, process 20361ygu@stb-lab-04:~$ sudo service smbd restartsmbd stop/waitingsmbd 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 = udpport = 69socket_type = dgramwait = yesuser = nobodyserver = /usr/sbin/in.tftpdserver_args = /tftpbootdisable = no}
  • 创建tftp目录并设置权限
sudo mkdir /tftpbootsudo chmod -R 777 /tftpbootsudo 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 -eExport 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文件,重启后就会使用这个修改后的配置直接进入命令行。

0 0
原创粉丝点击