Это может показаться достаточно невинным вопросом, но я не могу понять, куда gentoo помещает mongodb.conf после установки из portage. В документации говорится, что нужно искать в / etc /, но его там нет. Все, что мне нужно сделать, это изменить параметр dbpath, чтобы он сохранялся в / data / db, но в настоящее время он использует / var / lib / mongodb (что странно, поскольку по умолчанию он должен быть / data / db)
Ближайшее, что я видел, это /etc/init.d/mongodb, который имеет следующую конфигурацию:
start-stop-daemon --background --start --make-pidfile \
--pidfile ${MONGODB_RUN:-/var/run/mongodb}/${SVCNAME}.pid \
${USEROPT} ${MONGODB_USER:-mongodb} \
--exec ${MONGODB_EXEC:-/usr/bin/mongod} \
-- \
--port ${MONGODB_PORT:-27017} \
--dbpath ${MONGODB_DATA:-/data/db} \
#--dbpath ${MONGODB_DATA:-/var/lib/mongodb} \
--unixSocketPrefix ${MONGODB_RUN:-/var/run/mongodb} \
--logappend --logpath /var/log/mongodb/${SVCNAME}.log \
${MONGODB_OPTIONS}
eend $?
}
Как видите, я меняю точку, на которую должен указывать dbpath. Однако при запуске ps aux | grep mongod приводит к следующему:
mongodb 21044 0.2 2.1 189300 22032 ? Ssl May01 0:01 /usr/bin/mongod --port 27017 --dbpath /var/lib/mongodb --unixSocketPrefix /var/run/mongodb --logappend --logpath /var/log/mongodb/mongodb.log --bind_ip 127.0.0.1 --journal
Другой файл, который у меня есть, - это /etc/conf.d/mongodb, который содержит следующее:
# Mongodb essentials
MONGODB_EXEC="/usr/bin/mongod"
MONGODB_RUN="/var/run/mongodb"
MONGODB_DATA="/var/lib/mongodb"
MONGODB_USER="mongodb"
# Listen to specified IP, comment this to listen to all
MONGODB_IP="127.0.0.1"
# Listen to specified port
MONGODB_PORT="27017"
# Set extra options here, such as disabling the admin web server
MONGODB_OPTIONS="--journal"
Если кто-то знает, где правильно установить параметр dbpath, я был бы очень признателен.
Gentoo portage загружает исходный код, а затем компилирует двоичные файлы локально, вы можете посмотреть, где portage кэширует загрузки, предположительно в /usr/portage/distfiles/mongodb*
для любых файлов, включенных в архив с исходным кодом.
Похоже, что вместо изменения сценария инициализации вы должны внести изменения в файл конфигурации.
Вы упомянули, что у вас есть /etc/conf.d/mongodb
файл - и оттуда я вижу, что устанавливается переменная с именем MONGODB_DATA - если вы установите это значение на /data/db
, то переменная в сценарии инициализации должна правильно заполниться при запуске.
Для справки эта строка:
--dbpath ${MONGODB_DATA:-/data/db} \
означает, что сценарий инициализации попытается установить --dbpath параметр командной строки для любого содержимого MONGODB_DATA
есть, и если это ничего, затем используйте указанный путь, как указано. Что-то вроде этого:
${A_CONFIG_FILE_OPTION:-/a/default/when/config/does/not/set/the/option}
Обратите внимание - это не то, что связано с mongodb или даже упаковкой gentoo, это скорее сценарий инициализации и файл конфигурации gentoo.
Более полное руководство по файлам конфигурации mongodb (не файлу конфигурации gentoo!) Можно найти здесь: http://www.mongodb.org/display/DOCS/File+Based+Configuration
В общем, вы можете найти файлы, установленные данным пакетом Gentoo, следующим образом:
equery files mongodb
Так, например, чтобы найти файлы конфигурации:
equery files mongodb | grep conf