Ao instalar novos pacotes com o gerenciador de pacotes, recebo o erro de permissão mostrado abaixo. Isso acontece porque /home
está montado a partir de outro servidor, porém por que está apt-get
tentando acessar ~/.config/git
em primeiro lugar?
(base) blk6@gho:~/$ sudo apt-get install libssl-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
libssl-doc
The following NEW packages will be installed:
libssl-dev
0 upgraded, 1 newly installed, 0 to remove and 57 not upgraded.
Need to get 1,566 kB of archives.
After this operation, 7,846 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libssl-dev amd64 1.1.1-1ubuntu2.1~18.04.5 [1,566 kB]
Fetched 1,566 kB in 3s (507 kB/s)
warning: unable to access '/home/Users/blk6/.config/git/attributes': Permission denied
warning: unable to access '/home/Users/blk6/.config/git/ignore': Permission denied
Selecting previously unselected package libssl-dev:amd64.
(Reading database ... 219434 files and directories currently installed.)
Preparing to unpack .../libssl-dev_1.1.1-1ubuntu2.1~18.04.5_amd64.deb ...
Unpacking libssl-dev:amd64 (1.1.1-1ubuntu2.1~18.04.5) ...
Setting up libssl-dev:amd64 (1.1.1-1ubuntu2.1~18.04.5) ...
warning: unable to access '/home/Users/blk6/.config/git/ignore': Permission denied
Responder1
Não tenho ideia de por que seu gerenciador de pacotes tentaria invocar o git, mas você pode tentar usar ostrace
utilitário para descobrir o que está acontecendo. O strace rastreia chamadas do sistema, incluindo tentativas de abrir arquivos ou executar programas.
Para investigar seu problema específico, tentaria descobrir quais comandos estão sendo executados ( -e execve
) apt-get
e seus processos filhos bifurcados ( -f
):
sudo strace -f -e execve apt-get install ...
Se você remover a -e execve
opção, nenhum filtro será aplicado, resultando em uma saída demorada. Para fazer o strace gravar sua saída em um arquivo, você pode usar a -o file.txt
opção antes do comando (por exemplo strace -f -o file.txt apt install ...
, ).
Você também pode usar -e execve -e file
para rastrear execuções de comandos, bem como tentativas de abrir ou ler arquivos. Em seguida, procure a invocação do comando git e procure as linhas acima desta invocação. Talvez isso revele um nome de script a partir do qual o comando foi invocado.
Se isso ainda não for suficiente, você pode considerar verificar a configuração do apt em /etc/apt/
. Talvez você o tenha configurado para invocar algum gancho. Exemplo para procurar invocações do git:
grep -nre git /etc/apt
A saída ficará vazia se não houver correspondências e, caso contrário, exibirá o arquivo, o número da linha e o conteúdo da linha.