基于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
Lollipop
和Marshmallow
需要Java7
AOSP
的master
分支,以及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
- 安装
java7
和java8
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
以下是java
从java-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-multilib
,g++
或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
为什么需要同时重启
nmbd
和smbd
两项服务?
Samba
服务器包括两个后台应用程序:smbd
和nmbd
。
+smbd
是Samba
的核心, 主要负责建立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
文件,重启后就会使用这个修改后的配置直接进入命令行。
- 基于Ubuntu 14.04的Android Build Server搭建
- ubuntu搭建subversion服务器, build svn server in ubuntu
- Ubuntu下的基于Eclipse的Android环境搭建二三事
- 搭建基于OpenStack的Ubuntu Cloud (Ubuntu Server 12.04.3 LTS )
- 基于AndroidAsync框架搭建android http server
- ubuntu 12.04 build android的问题
- eclipse基于ant的build.xml搭建项目
- Build ubuntu server from scratch
- 基于Ubuntu 14.04的机器学习环境搭建
- Setup android build environment in Ubuntu 14.04
- Ubuntu 14.04 android 的编译环境搭建
- 搭建基于ubuntu的内核开发环境
- 搭建基于ubuntu的内核开发环境
- 基于UBUNTU的NODEJS开发环境搭建
- 基于ubuntu的ARM开发环境搭建
- 基于Ubuntu的LNMP环境搭建
- Ubuntu Server基本的环境搭建
- Ubuntu Server Apache + SVN 的搭建笔记
- 物联安防,构筑更加智能的平安城市
- maven遇到的一些问题
- Linux下MySQL服务突然无法正常启动
- Unity3D手游开发实践《腾讯桌球》客户端开发经验总结
- 第七周项目6 停车场模拟
- 基于Ubuntu 14.04的Android Build Server搭建
- ActiveMQ(三)
- Android加载图片导致内存溢出(Out of Memory异常)
- 第七周项目2-建立链队算法库
- 杭电ACM题目分类
- 地图上画点线面
- 跑py-faster-rcnn代码
- NOIP复习篇
- 记一次薪酬谈判的教训