消除下载Android源码时的“curl: (7)”等错误

来源:互联网 发布:卡五星麻将app源码 编辑:程序博客网 时间:2024/06/14 18:03

gaojs@ubuntu:~$ mkdir ~/bin
gaojs@ubuntu:~$ cd ~/bin
gaojs@ubuntu:~/bin$ curl http://android.git.kernel.org/repo>~/bin/repo
curl: (7) couldn't connect to host
gaojs@ubuntu:~/bin$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
curl: (7) Failed to connect to 2404:6800:4005:c00::5d: Network is unreachable
替换成如下的命令即可:
gaojs@ubuntu:~/bin$ curl "http://php.webtutor.pl/en/wp-content/uploads/2011/09/repo"> ~/bin/repo

详见:http://php.webtutor.pl/en/2011/09/05/kernel-org-hacked-how-to-get-android-repo/


然后即可使用如下的命令,下载Android源码了:
gaojs@ubuntu:~/bin$ chmod 777 repo
gaojs@ubuntu:~/bin$ sudo cp repo /bin/
gaojs@ubuntu:~/bin$ mkdir android
gaojs@ubuntu:~/bin$ cd android
gaojs@ubuntu:~/bin/android$ repo init -u https://android.googlesource.com/platform/manifest
gaojs@ubuntu:~/bin/android$ repo sync
会报以下的错误:
fatal: '../platform/abi/cpp.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
error: Cannot fetch platform/abi/cpp

在.repo目录下的manifest.xml里找到fetch属性,改成:
fetch= "git://Android.git.linaro.org/"

然后,再执行repo sync命令!还会报错:
error: The requested URL returned error: 406 while accessing https://android.googlesource.com/platform/manifest/info/refs
fatal: HTTP request failed

解决方法:
1. 浏览器登录https://android.googlesource.com/new-password,并用gmail帐号登录;
2. 点击网页上的“允许访问”,得到类似:

Login for Git:

Username: git-gaojs.hz.cn
Password: 1/5_cUC7YGeYNn71De8of2_1m1mqzpQs6xogGZfGRoj5o

Staying Authenticated - Linux and Mac OS X:

To stay authenticated by saving the password, append the following line to the ~/.netrc configuration file:
Make sure you have set the permissions on ~/.netrc so that only your user account can read the file. If your home directory is on a network filesystem, consider moving it to a local disk and making ~/.netrc a symbolic link to the local version.

Staying Authenticated - Windows:

To stay authenticated by saving the password, append the following line to the %HOME%\_netrc configuration file:
Ensure %HOME% is configured in the environment to be the same location as %USERPROFILE%. Note that by default, Windows systems willnot define the environment variable %HOME%; you must explicitly add it:
Start menu -> Computer -> (right click) -> Properties -> Advanced System Settings -> Environment Variables
Make sure you have set the permissions on %HOME%\_netrc so that only your user account can read the file.

3. 把上面那段信息追加到~/.netrc文件结尾(请检查当前用户的权限, 如果不存在此文件则自己新建一个);
4. 下载地址的URI更改为https://android.googlesource.com/a/platform/manifest(中间加上了“/a”)。
5. repo init -u https://android.googlesource.com/a/platform/manifest
6. repo sync
真够曲折的!