dpkg não consegue excluir um link simbólico

dpkg não consegue excluir um link simbólico

Eu tenho o seguinte script postint no pacote dpkg:

rm -f /SOMEDIRECTORY/current
ln -s /SOMEDIRECTORY/releases/RELEASESHA /SOMEDIRECTORY/current
ln -s /SOMEDIRECTORY/shared/config/config.json /SOMEDIRECTORY/releases/RELEASESHA/config/config.json

Esta é uma árvore de diretórios antes da instalação:

drwxr-xr-x 2 user user 4096 May 12 15:21 config
drwxr-xr-x 3 user user 4096 May 14 08:56 shared
drwxr-xr-x 6 user user 4096 May 14 10:06 releases
lrwxrwxrwx 1 root          root            49 May 14 10:14 current -> /SOMEDIRECTORY/releases/RELEASESHA

Quando tento instalar o pacote deb, ele está tentando remover um link simbólico de diretório que está apontando em oposição a APENAS O LINK SIMPLES:

dpkg: warning: unable to delete old directory '/SOMEDIRECTORY/releases/OLD_RELEASESHA': Directory not empty

Quando executo o rm -fcomando manualmente, ele funciona conforme o esperado, mas o que acontece quando o postinst está em execução, altera esse comando para outra coisa. O que está tentando remover o diretório para o qual o link simbólico aponta e não apenas o próprio link simbólico?

Alguém tem ideia? Obrigado

Responder1

Essa mensagem de erro não vem de nenhum comando no postinst.

Você não forneceu muitas informações, mas meu palpite é que quando você tenta instalar o pacote deb, já existe uma versão mais antiga do pacote no sistema. Nesse caso, o dpkg tentaria limpar a versão antiga antes de instalar a nova. Ele esperava /SOMEDIRECTORY/releases/OLD_RELEASESHAestar vazio naquele momento, já que nenhum outro pacote contém arquivos, então ele tentou removê-lo, mas não haviaeramalguns arquivos nele, sem propriedade de nenhum pacote. Tudo bem, mas não é esperado, então o dpkg gera um aviso.

informação relacionada