Назад | Перейти на главную страницу

Где gentoo хранит mongodb.conf? Хотите изменить местоположение dbpath

Это может показаться достаточно невинным вопросом, но я не могу понять, куда 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