Sim, alguém poderia pensar que isto era sobre a opção dpkg --admindir, mas neste caso acontece que o apt-get está derivando o AdminDir do Dir :: State :: status valor. Acabei de baixar o código-fonte do apt e encontrei o seguinte trecho em ./ apt-pkg / deb / debsystem.cc .
// Create the lockfile
string AdminDir = flNotFile(_config->Find("Dir::State::status"));
d->LockFD = GetLock(AdminDir + "lock");
if (d->LockFD == -1)
{
if (errno == EACCES || errno == EAGAIN)
return _error->Error(_("Unable to lock the administration directory (%s), "
"is another process using it?"),AdminDir.c_str());
else
return _error->Error(_("Unable to lock the administration directory (%s), "
"are you root?"),AdminDir.c_str());
}
Portanto, para o propósito deste exercício, Dir :: State :: status para / foo / bar / status será traduzido para o AdminDir / foo / bar e o arquivo de bloqueio / foo / bar / lock .
Eu não investiguei isso ainda mais, mas para mim o apt-get assumiu que o arquivo de status já existia. Criar um arquivo vazio usando o touch funcionou bem o suficiente para pelo menos não fazer o apt-get reclamar.