Eu estava errado. A incompatibilidade de liberação é o problema. Parece que um script de pós-instalação estava falhando silenciosamente, e é por isso que o arquivo ausente não existia.
A solução acabou por ser muito semelhante a esta questão , o que sugere a execução este script .
Fiz pequenas alterações no script, de acordo com uma alteração nos locais de arquivo padrão do MongoDB 3.2.6. (As mudanças não são estritamente necessárias. Eu simplesmente não gosto de cruft.) Anteriormente, os arquivos de dados estavam localizados em /data/db/
. O local padrão agora é /var/lib/mongodb/
e o local antigo não é mais usado. Então eu removi as linhas no script que se referem a esse caminho.
O Ubuntu agora usa o systemd por padrão em vez do Upstart, então /var/run/mongodb/
não é mais necessário. Eu apenas comentei estas linhas em vez de removê-las. Se você ainda estiver usando o Upstart por qualquer motivo, precisará remover o comentário das três linhas que se referem a esse caminho.
O script atualizado é assim:
# enable_mongo.sh
echo '[Unit]
Description=High-performance, schema-free document-oriented database
After=syslog.target network.target
[Service]
User=mongodb
Group=mongodb
ExecStart=/usr/bin/mongod -f /etc/mongod.conf
[Install]
WantedBy=multi-user.target' > /lib/systemd/system/mongod.service
# Setup the required directories
# mkdir -p /var/run/mongodb/
mkdir -p /var/log/mongodb/
mkdir -p /var/lib/mongodb/
# chown mongodb:mongodb /var/run/mongodb/
chown mongodb:mongodb /var/log/mongodb/
chown mongodb:mongodb /var/lib/mongodb/
# chmod 0755 /var/run/mongodb/
chmod 0755 /var/log/mongodb/
chmod 0755 /var/lib/mongodb/
# Start the new service and enable it on boot
systemctl --system daemon-reload
systemctl enable mongod.service
echo "Starting"
systemctl start mongod.service