MongoDB 3.2.6 초기화 스크립트가 누락되었습니다.

MongoDB 3.2.6 초기화 스크립트가 누락되었습니다.

나는 따라 갔다지도apt-get을 통해 MongoDB를 설치합니다. 확인에 문제가 있었지만 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 패키지에는 init 스크립트 /etc/init.d/mongod를 포함한 다양한 init 스크립트가 포함되어 있습니다.

파일은 GitHub의 소스에 존재합니다. 그래서 나는 계속할 수 있습니다. 하지만 성공적으로 설치된 패키지에서 중요한 구성 파일이 누락된 이유를 알고 싶습니다. (나를 완전주의자라고 불러주세요.)

내 Ubuntu 릴리스는 16.10이며 공식적으로 지원되지 않습니다. 그게 원인이 될 수는 없을 것 같아요. 출시 버전이 정말 비난받을 수 있습니까? 아니면 서명되지 않은 패키지를 설치한 것이 실수였습니까? 아니면 패키지 자체가 깨졌나요? 아니면 여기서 다른 일이 일어나고 있습니까?

답변1

내가 틀렸을 뿐이야. 릴리스 비호환성이 문제입니다. 설치 후 스크립트가 자동으로 실패한 것 같습니다. 이로 인해 누락된 파일이 존재하지 않습니다.

솔루션은 다음과 매우 유사한 것으로 나타났습니다.이 질문, 이는 실행을 제안합니다.이 스크립트.

MongoDB 3.2.6의 기본 파일 위치 변경에 따라 스크립트를 약간 변경했습니다. (변경 사항이 꼭 필요한 것은 아닙니다. 저는 단지 cruft를 좋아하지 않습니다.) 이전에는 데이터 파일이 /data/db/. 이제 기본 위치는 /var/lib/mongodb/이며 이전 위치는 더 이상 사용되지 않습니다. 그래서 해당 경로를 참조하는 스크립트의 줄을 제거했습니다.

Ubuntu는 이제 기본적으로 Upstart 대신 systemd를 사용하므로 /var/run/mongodb/더 이상 필요하지 않습니다. 나는 이 줄을 제거하지 않고 주석 처리했습니다. 어떤 이유로든 여전히 Upstart를 사용하고 있다면 이 경로를 참조하는 세 줄의 주석 처리를 제거해야 합니다.

업데이트된 스크립트는 다음과 같습니다.

# 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

관련 정보