Отсутствует скрипт инициализации MongoDB 3.2.6

Я следовал указаниям , чтобы установить MongoDB через apt-get. Был сбой с проверкой, но отслеживание этого на StackExchange показало, что это была известная проблема с процессом подписания, поэтому я перезапустил apt-get install mongodb без флага -y. Установка тогда удалась, или так казалось. Но когда я попытался запустить службу, это произошло:

$ sudo service mongod start
[sudo] password for mark: 
Failed to start mongod.service: Unit mongod.service not found.
$ sudo service mongod status
● mongod.service
   Loaded: not-found (Reason: No such file or directory)
   Active: inactive (dead)

Конечно, файл /etc/init.d/mongod не существует. В инструкциях по установке явно сказано, что этот файл предоставлен:

В пакет mongodb-org входят различные сценарии инициализации, в том числе сценарий инициализации /etc/init.d/mongod.

Файл существует в источниках на GitHub. Так что я могу продолжать. Но я хотел бы знать, почему критически важный файл конфигурации отсутствует в успешно установленном пакете. (Назовите меня законченным.)

Моя версия Ubuntu - 16.10, которая официально не поддерживается. Я не думаю, что это может быть причиной. Может ли виновата релизная версия? Или было ошибкой устанавливать пакеты без подписи? Или сам пакет сломан? Или здесь что-то еще происходит?

7
задан 4 May 2016 в 00:32

1 ответ

Я был просто неправ. Несовместимость выпуска является проблемой. Кажется, что сценарий постустановки тихо перестал работать, который является, почему недостающий файл не существовал.

решение оказалось очень похожим на этот вопрос , который предлагает работать этот сценарий .

, который я внес незначительными изменениями в сценарий, в соответствии с изменением в расположениях файла по умолчанию для MongoDB 3.2.6. (Изменения не строго необходимы. Мне просто не нравится хлам.) Ранее, файлы данных были расположены в /data/db/. Местоположение по умолчанию теперь /var/lib/mongodb/, и старое местоположение больше не используется вообще. Таким образом, я удалил строки в сценарии, которые относятся к тому пути.

Ubuntu теперь использует systemd по умолчанию, а не Выскочку, таким образом /var/run/mongodb/ больше не необходим. Я просто прокомментировал эти строки вместо того, чтобы удалить их. При тихом использовании Выскочки по любой причине необходимо будет не прокомментировать три строки, которые относятся к этому пути.

обновленный сценарий похож на это:

# 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
6
ответ дан 4 May 2016 в 10:32
  • 1
    Переустановленный HPLIP-3.15.2.run и реконфигурированный мой принтер с помощью 123.hp..com теперь каждая вещь вернулся к нормальному. Моя проблема решена. По-видимому, человечность 16.04 имеет версию по умолчанию HPLIP-3.16.6.run, присоединенного к нему, который пропускает много настроек принтера. – Paul Garff 20 October 2017 в 18:33

Другие вопросы по тегам:

Похожие вопросы: