一、cygwin 在 winXP下安装完成后使用当前用户登录后看所在磁盘的文件权限是没有问题的,但在win7下发现所有文件的权限都丢失了,导致使用cygwin编译出来的文件的权限也为空,这个问题可以使用以下方法来解决:
将cygwin修改为使用root用户登录
- 找到cygwin的etc目录中有一个名为passwd的文件。
-
用UE或记事本打开passwd这个文件,找到以下部分,把其中的windows用户名换成root(共3处都改过来)。
Administrator :unused:500 :513 :U-PC-201103250049\Administrator ,S-1-5-21-1343024091-57989841-1417001333-500:/home/Administrator :/bin/bash
蓝色 部分是替换成root,这个只是改名而已,真正关键部分是红色 部分,那个才是权限控制,将500和513都改成0,这样才能获取真正的root权限,改成如下:
root:unused:0:0:U-PC-201103250049\root,S-1-5-21-1343024091-57989841-1417001333-500:/home/root:/bin/bash,需要注意的是如果你使用当前用户为AA,那么需要修改 passwd文件中AA的那一行,这样在windows下你使用AA用户在cygwin登录后才会是root的权限
- 在cygwin的home目录下面建立目录root
- 启动cygwin进入以后,就会以真正的root权限运行了
- 二、解决cygwin上gpg: can’t lock memory: Permission denied问题
-
问题出在gnupg代码的util/secmem.c中使用uid来创建开辟内存空间,由于重装cygwin造成记录的uid和系统不一致,解决方法也简单,重建passwd就行了:
mkpasswd > /etc/passwd
-
经常上面的方法也解决不了问题,这时就需要以下的方法
First install subversion and wget through the standard cygwin setup program. Then run the following commands:
# svn --force export http://apt-cyg.googlecode.com/svn/trunk/ /bin/ # chmod +x /bin/apt-cyg
- use apt-cyg, for example:
# apt-cyg install gnupg
上面的也还是解决不了问题,只好去下载gnupg来安装 ftp://ftp.gnupg.org/gcrypt/gnupg/ 使用以下命令 autoconf automake
上面仍然不起作用 所以我试了.configure 出现以下错误
Cannot find install-sh, install.sh, or shtool in ac-aux
这时这里有篇文章解决了我 的问题 http://askubuntu.com/questions/27677/cannot-find-install-sh-install-sh-or-shtool-in-ac-aux 通过以下方式就没有问题了
de style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; font-family: 'Ubuntu Mono', 'Ubuntu Beta Mono A', Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; color: rgb(34, 34, 34);" >$ libtoolize --force
$ aclocal
$ autoheader
$ automake --force-missing --add-missing
$ autoconf
$ ./configure
de>
http://d.zhu.im/Android/
$ repo sync
正常情况下,上面就是下载android4.2源码的流程,但我在下载的过程中遇到了下面问题
问题1:“A new repo command ( 1.18) is available.”
其实这个问题就是说你本地的repo版本不是1.18,比这个旧,在出现这个的时候,下面会有一个提示你怎么操作的,如:
... A new repo command ( 1.18) is available.
... You should upgrade soon:
cp /home/pn/android/.repo/repo/repo/home/pn/bin/repo(执行这一句就可以),开始我苦悲的上网找这个的解决方法,,,,浪费不少时间。。
问题2:“error: Exited sync due to fetch errors...”
这个问题,网上都说是需要IP认证,其中我也根据
http://blog.csdn.net/fantao015/article/details/7625559
上面的操作,执行了一遍,其中包括注册了一个@gmail.com邮件,后面发现我没有用到这个也全部下载成功了。
问题3:经常提示
error: Failed connect to android.googlesource.com:443;Connection refused while accessinghttps://android.googlesource.com/a/platform/frameworks/base/info/refs
fatal: HTTP request failed
error: Cannot fetch platform/tools/motodev
error: Cannot fetch platform/frameworks/base
error: Cannot fetch platform/prebuilts/sdk
error: Exited sync due to fetch errors
等错误信息。
解决方法:编辑/etc/hosts文件
$ vim /etc/hosts
增加下面内容,保存
74.125.71.82 www.googlesource.com
74.125.71.82 android.googlesource.com
203.208.46.172 cache.pack.google.com
59.24.3.173cache.pack.google.com
然后重新输入
$ repo sync
这个关于DNS解析,提示了访问成功率,有兴趣的童鞋可以研究下。。哎,如果早找到该操作,就节省了我不错时间。。。。
Ref:
1 Downloading the Source Tree: http://source.android.com/source/downloading.html
2 android4.2源码下载过程: http://blog.csdn.net/lengxibo/article/details/8299888#reply
3 http://zhu.im/Android/ 非常好的一个链接,里面1.6到4.2各个版本都有,如果懒得自己下载就直接在此下载