A solução não usa snap
para instalar o comando repo. Use apt
em vez disso. Não faço ideia do porquê.
Estou tentando usar o comando repo que instalei via snap no Ubuntu 18.04. A maioria dos comandos estava funcionando bem, mas quando tento executar repo forall
, recebo o seguinte erro:
repo forall -c 'pwd'
Traceback (most recent call last):
File "/home/user/aosp/.repo/repo/main.py", line 531, in <module>
_Main(sys.argv[1:])
File "/home/user/aosp/.repo/repo/main.py", line 507, in _Main
result = repo._Run(argv) or 0
File "/home/user/aosp/.repo/repo/main.py", line 180, in _Run
result = cmd.Execute(copts, cargs)
File "/home/user/aosp/.repo/repo/subcmds/forall.py", line 230, in Execute
pool = multiprocessing.Pool(opt.jobs, InitWorker)
File "/snap/git-repo/18/usr/lib/python2.7/multiprocessing/__init__.py", line 232, in Pool
return Pool(processes, initializer, initargs, maxtasksperchild)
File "/snap/git-repo/18/usr/lib/python2.7/multiprocessing/pool.py", line 138, in __init__
self._setup_queues()
File "/snap/git-repo/18/usr/lib/python2.7/multiprocessing/pool.py", line 234, in _setup_queues
self._inqueue = SimpleQueue()
File "/snap/git-repo/18/usr/lib/python2.7/multiprocessing/queues.py", line 354, in __init__
self._rlock = Lock()
File "/snap/git-repo/18/usr/lib/python2.7/multiprocessing/synchronize.py", line 147, in __init__
SemLock.__init__(self, SEMAPHORE, 1, 1)
File "/snap/git-repo/18/usr/lib/python2.7/multiprocessing/synchronize.py", line 75, in __init__
sl = self._semlock = _multiprocessing.SemLock(kind, value, maxvalue)
OSError: [Errno 13] Permission denied
Eu olhei para essa questão:
Mas meu diretório /dev/shm
parece bem:
ls -lad /dev/shm
drwxrwxrwt 2 root root 40 May 26 16:40 /dev/shm
Os seguintes comandos funcionam bem:
$ cd /dev/shm
$ touch test
$ ls -la test
-rw-rw-r-- 1 myuser myuser 0 May 26 21:00 test
Alguma outra ideia?
Aqui estão os detalhes da minha versão do repo:
repo version v1.12.37
(from https://gerrit.googlesource.com/git-repo)
repo launcher version 1.23
(from /snap/git-repo/18/bin/repo)
git version 2.12.0
Python 2.7.12 (default, Nov 19 2016, 06:48:10)
[GCC 5.4.0 20160609]
Talvez o problema esteja vindo dessa linha de código?
Quando escrevo um programa de exemplo assim, funciona bem:
int main(void)
{
const char *name = "/permission_test_semaphore";
sem_t* sem = sem_open(name, O_CREAT | O_EXCL, 0600, 0);
if (SEM_FAILED == sem) {
printf("Create semaphore failed %s, errno = %d\n", name, errno);
} else {
printf("Created semaphore succeeded\n");
}
return 0;
}
Então ainda pesquisando ...
A solução não usa snap
para instalar o comando repo. Use apt
em vez disso. Não faço ideia do porquê.
Tags python python-2.7 18.04