msd6369__Ubuntu-编译环境搭建

在安装编译环境前需要做做以下步骤:

(一). 安装ubuntu10.04 server x64位操作系统 此步骤需要注意以下设置:
安装 Ubuntu 10.04 LTS Server 64bit

1) CD-ROM 启动 ... 没有说明的地方直接《回车》,或选择“default”

2) 英文、缺省键盘

2) 服务器名字:ubuntu03

3) 选择时区:Select from worldwide list --> Asis/shanghai

4) use entire disk (第二选项)

5) username:it

6) Encrypt your home directory --> (No)

7) Software selection -->OpenSSH、Samba、Manual

手动选择:(操作方式:回车键展开,移动要安装的包,+ 键标记为i)

admin --> quota

devel

docs

interpreters

libdevel

libs

<ESC>退出后,确认安装

8) Mail Server--> (No Configuration)

9) Grub--> install to mbr

10) 配置网卡

# vi /etc/network/interfaces

auto lo eth0

iface eth0 inet static

address 172.16.1.19

netmask 255.255.255.0

broadcast 172.16.1.255

gateway 172.16.1.1

11) 配置DNS

# vi /etc/resolv.conf

nameserver 172.16.1.7

domain siviton.local

备份更新源,将更新源改为 163.com

# mv /etc/apt/sources.list/etc/apt/sources_old.list

# vi /etc/apt/sources.list

deb http://mirrors.163.com/ubuntu/ lucidmain universe restricted multiverse

deb-src http://mirrors.163.com/ubuntu/ lucidmain universe restricted multiverse

deb http://mirrors.163.com/ubuntu/lucid-security universe main multiverse restricted

deb-src http://mirrors.163.com/ubuntu/lucid-security universe main multiverse restricted

deb http://mirrors.163.com/ubuntu/lucid-updates universe main multiverse restricted

deb http://mirrors.163.com/ubuntu/lucid-proposed universe main multiverse restricted

deb-src http://mirrors.163.com/ubuntu/ lucid-proposeduniverse main multiverse restricted

deb http://mirrors.163.com/ubuntu/lucid-backports universe main multiverse restricted

deb-src http://mirrors.163.com/ubuntu/lucid-backports universe main multiverse restricted

deb-src http://mirrors.163.com/ubuntu/lucid-updates universe main multiverse restricted

# apt-get update

( 选装 gcc )# apt-get installbuild-essential

2.Install quota

# sudo apt-get install quota quotatool

# sudo gedit /etc/fstab

# /dev/hda1 UUID=4ea80ca3-37b7-447e-831a-700a38627029 / ext3defaults,errors=remount-ro,usrquota,grpquota 0 1

安装samba #apt-get install samba smbfs

# apt-get install system-config-samba

重启 # /etc/init.d/smbd restart 或service smbdrestart

添加samba帐号$sudo smbpasswd user 

3.Install webmin

# sudo apt-get install perl perl-baseperl-modules libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtimelibio-pty-perl apt-show-versions python

# wget http://prdownloads.sourceforge.net/webadmin/webmin_1.630_all.deb

# sudo dpkg --install webmin_1.630_all.deb

4.Install GUI desktop (可选)

# sudo apt-get install ubuntu-desktop

5.Install xRDP (可选)

# sudo apt-get install xrdp

(二)配置 Android 编译环境

. 安装自带 SVN

0) #sudo apt-get install subversion


视需要选择是否编译安装 SVN 1.7.5版

1) # svn cohttp://svn.apache.org/repos/asf/apr/apr/branches/1.3.x apr

# svn cohttp://svn.apache.org/repos/asf/apr/apr-util/branches/1.3.x apr-util

安装过程如下:

1. 编译安装 apr-1.4.8

1)tar xvf apr-1.4.8.tar.gz

2)cd apr-1.4.8

3)./buildconf ## 这个比较重要 apt-get install autoconf libtool

4)./configure

5)make

6)make install

2. 编译安装 apr-util

1)tar xvf apr-util-1.5.2.tar.gz

2)mv apr-1.4.8 apr ## 此处把 apr-1.4.8 改名为 apr

3)cd apr-util-1.5.2

4)./buildconf

5)./configure--with-apr=/usr/local/apr ## 指明 apr 路径

6)make

7)make install

3. 压缩 sqlite,改名为 sqlite-amalgamation,复制到 svn 1.8.3 文件中

mv sqlite-amalgamation-3071501 subversion-1.8.3/ssqlite-amalgamation

## 上面指令不是实际执行的指令,示例用,注意 sqlite-amalgamation 文件夹里应该是 4 个源文件

4. 编译安装 subversion-1.8.3

1)cd subversion-1.8.3

2)./configure --with-apr=/usr/local/apr--with-apr-util=/usr/local/apr/bin/apu-1-config

3)make

4)make install

5)cp /usr/local/bin/svn* /usr/bin ## 复制编译好的 svn* 执行文件到 /usr/bin 并覆盖

6)# 验证svn --version

svn--version

svn,version 1.7.5 (r1336830)

compiled Mar 27 2014, 11:59:14

(三)安装arm*文件

(1)安装ARM Tool-Chain:

将arm-2010.09-arm-none-linux-gnueabi.tgz,arm-2011.03-42-arm-none-eabi-i686-pc-linux-gnu.tar.bz2,复制到ubuntu虚拟机的/opt文件夹中;

解压ARM Tool-Chain文件:

tar xvfarm-2010.09-arm-none-linux-gnueabi.tgz

tar xvjfarm-2011.03-42-arm-none-eabi-i686-pc-linux-gnu.tar.bz2

安装必要组件:

apt-get install git-coregnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libsx11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev libgl1-mesa-devg++-multilib mingw32 tofrodos python-markdown libxml2-utils liblzo2-2

(2)安装JDK:

在http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html#jdk-6u31-oth-JPR网址下载:jdk-6u31-linux-i586.bin,jre-6u31-linux-i586.bin

复制文件jdk-6u31-linux-i586.bin,jre-6u31-linux-i586.bin到/usr/local,

chmod +x jdk-6u31-linux-i586.bin

chmod +x jre-6u31-linux-i586.bin

执行./jdk-6u31-linux-i586.bin安装jdk;执行./ jre-6u31-linux-i586.bin安装jre;

在/etc/profile.d/文件夹下添加一个java.sh文件,文件内容为:

exportJAVA_HOME=/usr/local/jdk1.6.0_31

exportCLASSPATH=.:$JAVA_HOME/lib

exportPATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

在终端执行:source/etc/profile

测试java,javac:打印出如下信息,说明安装成功

root@ubuntu03:~#java

Usage:java [-options] class [args...]

(to execute a class)

orjava [-options] -jar jarfile [args...]

(to execute a jar file)

root@ubuntu03:~#javac

Usage:javac <options> <source files>

wherepossible options include:

-g Generate all debugginginfo

-g:none Generate no debugging info

-g:{lines,vars,source} Generate only some debugging info

-nowarn Generate no warnings

(4)编译错误:

A.Supernova编译出现dos2unix指令找不到的问题,需要安装tofrodos:

dos2unix on Ubuntu 10.04

Yet another "feature"from the developers of ubuntu to simplify life. "dos2unix" and"unix2dos" are missing in version 10.04 (Lucid).

installdos2unix package:

sudo aptitude install tofrodos

或者

sudo apt-get install tofrodos

Thenif you want "dos2unix" type "fromdos" and if you want"unix2dos", type "todos". If you have a habit of typing inthe old commands, its best to create links.Go to/usr/bin:

sudo ln -s fromdos dos2unix

sudo ln -s todos unix2dos

# vi /etc/profile

exportPATH=$PATH:/opt/arm-2010.09/bin:/opt/arm-2011.03/bin

B. Android编译时出现liblzo找不到编译错误的问题:

sudoapt-get install liblzo2-2

问题分析:shell scripts代码对于标准bash而言没有错,因为Ubuntu为了加快开机速度,用dash代替了传统的bash,是dash在捣鬼。

解决方法:取消dash:
sudo dpkg-reconfigure dash
在选择项中选No,即可。

验证完成:

#svn cosvn://172.16.1.9/msd6369/base

#./buildsvt.sh android (测试1) -- Make -6 32分钟、Make -12 26分钟

#./buildsvt.sh supernova (测试2)

(四)开启ubuntu 的Ccache 模式

. 添加环境变量

# vi /etc/profile ,尾添以下两行

exportUSE_CCACHE=1

exportCCACHE_DIR=/var/.ccache

2. 建立缓存目录

# mkdir /var/.ccache

3. 安装ccache

# apt-get install ccache

4. 设置缓存大小:

# ccache -M 20G

5. 可以用以下命令查看 ccache 的运行情况:

# ccache -s

或者

# watch -n1 -d ccache -s

172.16.1.17上的状态:

root@ubuntu03:~#ccache -s

cachedirectory/var/.ccache

cachehit 13242134

cachemiss 2286727

calledfor link 644670

compilefailed 8

ccacheinternal error 7

preprocessorerror 1

cachefile missing 6

not aC/C++ file 388041

unsupportedcompiler option 109699

files incache 354507

cachesize 35.5 Gbytes

max cachesize 40.0 Gbyte

(五)ubuntu LVM模式

########.ubuntuserver使用LVM模式进行管理后 其他加入的硬盘同样需要以LVM分区的形式挂载。

1.$sudofdisk -l 查看服务器上的所有硬盘信息。

Disk/dev/sda: 240.1 GB, 240057409536 bytes

255heads, 63 sectors/track, 29185 cylinders

Units =cylinders of 16065 * 512 = 8225280 bytes

Sectorsize (logical/physical): 512 bytes / 512 bytes

I/O size(minimum/optimal): 512 bytes / 512 bytes

Diskidentifier: 0x0003075c

Device Boot Start End BlocksId System

/dev/sda1 * 1 32 24883283 Linux

Partition1 does not end on cylinder boundary.

/dev/sda2 32 29186234179585 5 Extended

/dev/sda5 32 29186234179584 8e Linux LVM

Disk/dev/sdb: 180.0 GB, 180045766656 bytes

255heads, 63 sectors/track, 21889 cylinders

Units =cylinders of 16065 * 512 = 8225280 bytes

Sectorsize (logical/physical): 512 bytes / 512 bytes

I/O size(minimum/optimal): 512 bytes / 512 bytes

Diskidentifier: 0x0c8a4135

Device Boot Start End BlocksId System

/dev/sdb1 1 21889175823361 83 Linux

Disk/dev/sdc: 2000.4 GB, 2000398934016 bytes

255heads, 63 sectors/track, 243201 cylinders

Units =cylinders of 16065 * 512 = 8225280 bytes

Sectorsize (logical/physical): 512 bytes / 512 bytes

I/O size(minimum/optimal): 512 bytes / 512 bytes

Diskidentifier: 0xbe24f476

Device Boot Start End BlocksId System

/dev/sdc1 1 2432011953512001 83 Linux

2.$sudopvscan /*查看系统所有物理卷 还有$sudo pvdisplay

3.$sudopvcreate /dev/sdb /*创建物理卷(初始化硬盘)此命令将整个磁盘创建为物理卷。 如果需要将物理卷里面的单个分区作为物理卷命令如下:

$sudo pvcreate /dev/sdb1

4.创建卷组(vgdisplay)

ubuntu@ubuntu04:/home$sudo vgcreate sdclvg /dev/sdc

5.激活卷组

ubuntu@ubuntu04:/$sudo vgchange -ay sdclvg

6.创建逻辑卷 (lvdisplay)

ubuntu@ubuntu04:/home$sudo lvcreate -n sdc_lv -L 1800Gsdclvg

Logical volume "sdc_lv" created

7.格式化

ubuntu@ubuntu04:/home$sudo mkfs.ext4 /dev/sdclvg/sdc_lv

8.挂载

ubuntu@ubuntu04:/home$sudo mount /dev/sdclvg/sdc_lv /sdc1/

9.查看

ubuntu@ubuntu04:/home$sudo df -lh

Filesystem Size Used Avail Use% Mounted on

/dev/mapper/ubuntu04-root

211G 196G 5.0G98% /

none 7.9G 236K 7.9G 1% /dev

none 7.9G 0 7.9G 0% /dev/shm

none 7.9G 9.4M 7.9G1% /var/run

none 7.9G 0 7.9G 0% /var/lock

none 7.9G 0 7.9G 0% /lib/init/rw

/dev/sda1 228M 17M 199M 8% /boot

/dev/mapper/sdblvg-sdb_lv

162G 188M 154G1% /sdb1

/dev/mapper/sdclvg-sdc_lv

1.8T 196M 1.7T1% /sdc1