首先第一点,权限问题是有很多种可能性的,这个方法不一定适用你的情况

1.问题表现

公司安排了一个ubuntu虚拟机用于编译Android源码,发现一块硬盘不够用,重新挂载了一块硬盘,发现在 repo init -u xxx的时候会提示 fatal: cannot make .repo/repo directory: Permission denied,按照网上的方法什么文件夹创建是root之类的改法完全没有用。

2.问题确认

由于我们这里还有一台实体机装了ubuntu用于编译,这台机器是好的,对比了repo的权限

实体机的权限是,它的用户和用户组是kkkkcom:kkkkcom

kkkkcom@kkkkcom-Vostro-3890:~/snap/bin$ ls -l repo
-rwxrwxr-x 1 kkkkcom kkkkcom 45277 Mar 12 15:49 repo

而有问题的虚拟机的权限是 root:root

kkkkcom@kkkkcom-virtual-machine:/snap/bin$ ls -l repo 
lrwxrwxrwx 1 root root 13 5月  16 09:38 repo -> git-repo.repo
kkkkcom@kkkkcom-virtual-machine:/snap/bin$ ls -l git-repo.repo 
lrwxrwxrwx 1 root root 13 5月  16 09:38 git-repo.repo -> /usr/bin/snap

这里直接去修改用户组发现并不能生效,可能跟链接L文件有关,于是通过rm -rf把有问题的repo删除,并且将实体机里面的repo文件拷贝到相关路径并设置相同的权限和用户组,发现问题解决

rm -rf /snap/bin/repo


kkkkcom@kkkkcom:kkkkcom-virtual-machine:/snap/bin$ sudo cp ~/Desktop/repo .
kkkkcom@kkkkcom-virtual-machine:/snap/bin$ ls -l repo
-rw-r--r-- 1 root root 45277 5月  26 10:40 repo
kkkkcom@kkkkcom-virtual-machine:/snap/bin$ sudo chown kkkkcom:kkkkcom repo 
kkkkcom@kkkkcom-virtual-machine:/snap/bin$ ls -l repo 
-rw-r--r-- 1 kkkkcom kkkkcom 45277 5月  26 10:40 repo
kkkkcom@kkkkcom-virtual-machine:/snap/bin$ chmod 775 repo 
kkkkcom@kkkkcom-virtual-machine:/snap/bin$ ls -l repo 
-rwxrwxr-x 1 kkkkcom kkkkcom 45277 5月  26 10:40 repo

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐