16.04 ile 14.04 MongoDB Paketlerini kullanabilir miyim?


10

Ne yazık ki MongoDB için resmi Ubuntu paketi hala 2.6'da kalıyor, bu da bu noktada eski ( bu hata canlı, kurnaz veya xenial için alınmadı).

MongoDB henüz 16.04 (Xenial) için bir paket yayınlamadı, bu yüzden 16.04'e MongoDB 3.2+ yüklemek için 14.04 (Trusty) paketlerini nasıl kullanabilirim?


Evet yapabilirsin. Yükseltme yapıyorsanız, kolay olmalı. 16.04 sürümünü yeni yüklediyseniz, şu adımları izleyin: askubuntu.com/questions/724749/…
KhoPhi

@Rexford Aşağıdaki cevapta göreceğiniz gibi eski paketlerle 16.04'te o kadar kolay değil (servis yeni bir kurulumla düzgün bir şekilde
Adam C

Yanıtlar:


14

Biraz hack ama evet, bu yapılabilir. Hizmeti gerçekten başlatmak için gereken belgelenmemiş bir adım var ve uptart iş dönüşümüyle elle dolaşmak istemiyorsanız, önce Ubuntu mongodbpaketini yüklemeniz , ardından kullanılabilir bir hizmetiniz olması için kaldırmanız gerekir. MongoDB paketlerinin düz bir şekilde yüklenmesi, yeni bir 16.04 üzerinde çalışan bir hizmet vermeyecektir .

Güncelleme - Temmuz 2016: Bunun resmi düzeltmesi (paketlere 16.04 desteği ekleyerek) SERVER-23043'ün bir parçası olarak 3.3 dev şubesinde tamamlandı ve 3.2 serisinin 3.2 bölümünde backport olarak piyasaya sürüldü . 7 . Eğer 3.2.7+ kullanıyorsanız Dolayısıyla, size do not yapmanız yeterlidir ve resmi MongoDB paket gereken sadece işi yükleyin.

Her durumda, ekleme / kaldırma işlemini yaptıktan sonra , burada özetlenen 14.04 için olağan talimatları izleyin :

# install the Ubuntu package (to get the service set up correctly)
sudo apt-get install mongodb
# Now remove it and continue with the MongoDB instructions
sudo apt-get remove mongodb
sudo apt-get autoremove
# import key
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
# add trusty repos
echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
# update apt
sudo apt-get update
# install the MongoDB package
sudo apt-get install -y mongodb-org

Yükleme başarılı olur ve Ubuntu paketi sayesinde bir hizmet için gereken tüm parçalara sahibiz, ancak hizmeti başlatmaya çalışmak başlangıçta başarısız olur:

$ sudo service mongodb start
Failed to start mongodb.service: Unit mongodb.service is masked.

Bunu düzeltmek çok zor değil:

$ sudo systemctl unmask mongodb
Removed symlink /etc/systemd/system/mongodb.service.

Şimdi hizmeti etkinleştirebilir / başlatabilir, durumunu alabilir vb.

$ sudo service mongodb enable
$ sudo service mongodb start
$ sudo service mongodb status
● mongodb.service - LSB: An object/document-oriented database
   Loaded: loaded (/etc/init.d/mongodb; bad; vendor preset: enabled)
   Active: active (running) since Thu 2016-04-14 16:40:35 IST; 7s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 2849 ExecStart=/etc/init.d/mongodb start (code=exited, status=0/SUCCESS)
 Main PID: 1593 (code=exited, status=0/SUCCESS)
    Tasks: 13 (limit: 512)
   Memory: 51.9M
      CPU: 100ms
   CGroup: /system.slice/mongodb.service
           └─2861 /usr/bin/mongod --config /etc/mongodb.conf

Başarılı - ve etkin yapılandırma dosyasına güzel bir işaretçi alıyoruz (eski key=valuebiçimdedir, önerilen yeni YAML biçimindeki örnekler için buraya bakın ).

Not: Aslında iki yapılandırma dosyası olacak /etc/mongod.confve /etc/mongodb.confkurduğumuz iki paket arasındaki küçük farklılıklar sayesinde. Varsayılan olarak eski formatlı birine artık aktif hizmet noktaları /etc/mongodb.conf- Eğer kopyalayarak / taşıyarak geçiş yapabilirsiniz mongod.confiçin mongodb.confeğer böyle dileği veya sadece dosyayı doğrudan düzenleyin.

Bir kez başlatıldığında, test etmek için mongokabukla veritabanına bağlanın :

$ mongo
MongoDB shell version: 3.2.5
connecting to: test
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
    http://docs.mongodb.org/
Questions? Try the support group
    http://groups.google.com/group/mongodb-user
Server has startup warnings: 
2016-04-14T16:40:34.962+0100 I CONTROL  [initandlisten] 
2016-04-14T16:40:34.962+0100 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2016-04-14T16:40:34.962+0100 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2016-04-14T16:40:34.962+0100 I CONTROL  [initandlisten] 
2016-04-14T16:40:34.962+0100 I CONTROL  [initandlisten] 
2016-04-14T16:40:34.962+0100 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2016-04-14T16:40:34.962+0100 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2016-04-14T16:40:34.962+0100 I CONTROL  [initandlisten] 
2016-04-14T16:40:34.962+0100 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2016-04-14T16:40:34.962+0100 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2016-04-14T16:40:34.962+0100 I CONTROL  [initandlisten] 

THP uyarılarından kurtulmak istiyorsanız, bu cevaba göz atın .


1
Yukarıdaki ilk kod bloğunuzdan sonra çalıştırma sudo service mongodb startgeri döner Failed to start mongodb.service: Unit mongodb.service not found.
user1063287

1
Systemd için bir hizmet dosyası oluşturarak yukarıdaki sorunu çözmeye çalıştım ( askubuntu.com/a/694226/367134 uyarınca ). Sonuç budur: sudo service mongodb starthiçbir şey döndürmez. sudo service mongodb statusile başarısız bir ileti döndürür status=2. Bunu düzeltmek için yeni oluşturulan hizmet dosyasındaki yolu olarak olarak /etc/mongodb.confdeğiştirdim /etc/mongod.conf. Orijinal cevabınıza dayanarak, mongodb'un sistem başlangıcında nasıl başlamasını sağlayabilirsiniz?
user1063287

1
Aşağıdaki ek eylem benim için Sistem açılışında başlatmak için mongodb etkin: sudo systemctl enable mongodb. Bakınız: digitalocean.com/community/tutorials/…
user1063287

1
Ah, eminim talimatlarımı kopyalarken / yapıştırırken bu satırı bıraktım ya da benzer şekilde başarısız olurdum, kafaları için teşekkürler
Adam C

1
3.2.8'de kesinlikle sabit değil. Son yoruma bakın . 3.2.9'da ele alınmalıdır.
Goran Miskovic

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.