ubuntu下多工程的环境变量配置方法
版本 | 版本说明 | 发布时间 | 发布人 |
V1.0 | 初始版本 | 2013-03-16 | Skywang |
|
|
|
|
1概要
在我们的日常工作中。随着我们工作的项目的增多,可能会遇到以下问题:
第一,经常需要在各个目录间来回切换。每次来回切换,需要输入很长的指令!
第二,不同的项目所需的配置信息不同,而我们经常需要导入不同的配置信息。重复导入配置信息,很费时!
如果你遇到上面所说的问题,并且被这些问题所困扰。可以试试阅读本文,希望文中的方法能帮助您解决上诉问题。本文主要就我自己在ubuntu下管理不同项目的方法进行了说明:根据不同的项目导入不同配置;然后,可以非常方便快捷的在不同项目之间来回切换。
比如:有现在2个项目,分别是android2.3和android4.0。
(01)它们各自都有自己所需要的环境。
如:android2.3使用的是jdk1.6.26;而android4.0使用的是jdk1.6.29。
(02)它们的工作路径不同;但是都有android、kernel、uboot等工程目录。
想要方便的导入配置文件和在不同目录中切换,我的思路是:分别给android2.3和android4.0各写一个配置文件,通过导入不同的配置文件,来导入不同项目的环境。而导入配置文件的方法呢,是直接通过简单的命令去实现。
这样,我们需要解决的就只有2个问题:第一,编写各个项目对应的配置文件。第二,添加导入配置文件的方法。有了这个思路之后,我们便开始添加配置文件。
2 工程android2.3
2.1 工程android2.3的工程配置文件
android2.3的工程路径如下:
/home/skywang/a8/gingerbread/wcdma
在工程路径下面,有许多其他的目录:包括“code”(代码)、“envsetup”(环境变量和其他脚本工具)、“document”(文档)、“hw”(硬件相关的文件)、“backup”(备份文件)等。这里重点要说明是“code”和“envsetup”。
“code”目录包括android、kernel、uboot等3部分的代码文件,它们的路径分别如下:
/home/skywang/a8/gingerbread/wcdma/code/android
/home/skywang/a8/gingerbread/wcdma/code/kernel
/home/skywang/a8/gingerbread/wcdma/code/ubooot
“envsetup”目录包括配置文件ENVSETUP,路径如下:
/home/skywang/a8/gingerbread/wcdma/envsetup/ENVSETUP
配置文件ENVSETUP的内容如下:
###skywang add for android 2.3 bsp env###
echo "setting android2.3 bspenvironment variables..."
# 设置终端提示语
PS1='${debian_chroot:+($debian_chroot)}\u:(gingerbread)\W\$'
# 设置Java环境变量
export JAVA_HOME=/opt/jdk1.6.0_26
exportCLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
exportPATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
# 将交叉编译工作添加道PATH中
exportPATH=$PATH:/opt/toolchains/arm-2009q3/bin
# 工程通用的目录
project_path="/home/skywang/a8/gingerbread/wcdma"
code_path="${project_path}/code"
android_path="${code_path}/android"
kernel_path="${code_path}/kernel"
uboot_path="${code_path}/uboot"
# 路径跳转别名
alias cdandroid='cd ${android_path}'
alias cdkernel='cd ${kernel_path}'
alias cduboot='cd ${uboot_path}'
2.2 工程android2.3导入工程配置文件的方法
完成ENVSETUP之后,我们编辑用户根目录的.bashrc文件,并在文件末尾添加如下语句:
# 跳转到gingerbread的工作目录,并导入gingerbread的环境变量
alias cdgingerbreadwcdma='cd/home/skywang/a8/gingerbread/wcdma/code/android; source../../envsetup/ENV_SETUP'
完成.bashrc的编辑之后,再介绍如何导入android2.3的配置。
我们新开一个终端,并在终端中输入”cdgingerbreadwcdma”。这样,我们便跳转到/home/skywang/a8/gingerbread/wcdma/code/android,并且导入android2.3工程下的环境ENVSETP。
之后,并可以依次输入以下命令来方便的进行目录跳转:
$cdandroid
$cdkernel
$cduboot
另外,我们可以通过以下命令检查配置信息是否生效
$echo $PS1
$echo $JAVA_HOME
$echo $CLASSPATH
$echo $PATH
示例如下图:
3 工程android4.0
3.1 工程android4.0的工程配置文件
在熟悉android2.3工程的配置和导入方法之后,我们再简要说明以下android4.0工程的配置编写和导入方法。实际上,主要内容与android2.3相同,只是路径和所需配置不同。
android4.0的工程路径如下:
/home/skywang/a8/ics/wcdma
“code”目录包括android、kernel、uboot等3部分的代码文件,它们的路径分别如下:
/home/skywang/a8/ics/wcdma/code/android
/home/skywang/a8/ics/wcdma/code/kernel
/home/skywang/a8/ics/wcdma/code/ubooot
“envsetup”目录包括配置文件ENVSETUP,路径如下:
/home/skywang/a8/ics/wcdma/envsetup/ENVSETUP
androd4.0的ENVSETUP配置文件信息如下:
###skywang add for android 4.0.3 bsp env###
echo "setting android4.0.3 bspenvironment variables..."
# 设置终端提示语
PS1='${debian_chroot:+($debian_chroot)}\u:(ics)\W\$'
# 设置Java环境变量
export JAVA_HOME=/opt/jdk1.6.0_29
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
exportPATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
# 将交叉编译工作添加道PATH中
exportPATH=$PATH:/opt/toolchains/arm-2009q3/bin
# 工程通用的目录
project_path="/home/skywang/a8/ics/wcdma"
code_path="${project_path}/code"
android_path="${code_path}/android"
kernel_path="${code_path}/kernel"
uboot_path="${code_path}/uboot"
# 路径跳转别名
alias cdandroid='cd ${android_path}'
alias cdkernel='cd ${kernel_path}'
alias cduboot='cd ${uboot_path}'
3.2 工程android4.0导入工程配置文件的方法
完成ENVSETUP之后,我们编辑用户根目录的.bashrc文件,并在文件末尾添加如下语句:
# 跳转到ics的工作目录,并导入ics的环境变量
alias cdics='cd/home/skywang/a8/ics/wcdma/code/android; source ../../envsetup/ENV_SETUP'
编辑完.bashrc之后,我们便可以通过"cdics"跳转到 /home/skywang/a8/ics/wcdma/code/android目录,并导入android4.0的配置。之后,就可以通过cdandroid、cdkernel、cduboot等命令在android4.0的各个项目目录间跳转。
4 导入不同的工程
完成上面androd2.3和android4.0的配置文件和导入方法之后,我们就可以简单的在终端通过以下方法来不会项目中来回切换。
导入android2.3工程的方法:
cdgingerbread
导入android4.0工程的方法:
cdics
使用示例,如下图: