linux 多工程的環境變數配置方法

Coding-lover發表於2016-01-16

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

使用示例,如下圖:

轉載自:ubuntu下多工程的環境變數配置方法

相關文章