一、機器以及軟件環境:
公司內網+代理+VirtualBox+Linux
二、錯誤內容:
在Linux環境下(虛擬機爲 VirtualBox)獲取Android源代碼的時候,
使用命令:repo init -u git://android.git.kernel.org/platform/manifest.git 時提示下列錯誤:
fatal: Unable to look up android.git.kernel.org (port 9418) (Name or service not known)
三、發生錯誤原因:
用一句話來概括就是聯網出現問題,因爲僅僅在網絡設定裏面設定代理還不夠,我們需要用某種fanqiang工具來實現代理的操作。
四、錯誤發生情形
正常使用repo獲取android源碼步驟爲:
1、安裝所需軟件:
sudo apt-get install git-core curl
2、設置工具repo的存放目錄並將其加入環境變量內:
mkdir ~/bin
PATH=~/bin:$PATH
3、下載repo的腳本並將其模式改爲可執行:
curl http://android.git.kernel.org/repo > ~/bin/repo
chmod a+x ~/bin/repo
4、創建下載源代碼的目錄
mkdir ~/source
cd ~/source
5、開始repo操作
repo init -u git://android.git.kernel.org/platform/manifest.git
如果是在正常網路不用代理的情況下一般repo都會成功。
但由於公司特殊的網絡環境,導致在repo的時候發生fatal: Unable to look up android.git.kernel.org (port 9418) (Name or service not known)的問題。
五、解決方法:
1、安裝corkscrew
sudo apt-get install corkscrew
2、在任意目錄建立任意文件
例如: ~/bin/proxy-hoge-user.sh
添加如下內容並保存:
2 CORKSCREW=`which corkscrew`
3 $CORKSCREW proxy.hoge.com8080 $1 $2~/bin/user-pwd
其中:
proxy.hoge.com爲代理的服務器,
8080爲代理的端口,
~/bin/user-pwd爲存放代理的用戶名和密碼的文件。
需要根據自己的情況進行設定。
3、新建存放代理的用戶名和密碼的文件
~/bin/user-pwd
格式爲
<username>:<password>
例如 user:pwd
4、改文件屬性
chmod 755 ~/bin/proxy-hoge-user.sh
chmod 600 ~/bin/user-pwd
5、添加環境變量GIT_PROXY_COMMAND
sudo vi ~/.bashrc
添加如下命令:
export GIT_PROXY_COMMAND=~/bin/proxy-hoge-user.sh
保存退出。
source ~/.bashrc
6、重新再source目錄下進行repo操作就能成功了。