Apt-get, 16.04 veya 18.04'te yükleme işlemini sürdürüyor


26

16.04'teki talimatları kullanarak mongodb kurmaya çalıştığımda, kurulum adımında https://docs.mongodb.com/getting-started/shell/tutorial/install-mongodb-on-ubuntu/şu sonucu alıyorum:

jonathan@poseidon:~$ sudo apt-get install mongodb-org
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package mongodb-org is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'mongodb-org' has no installation candidate

Wireshark ile HTTP trafiğini kontrol ettim ve tek trafiğin liste için bir HTTP GET olduğunu ve sorunun yerel yapılandırma dosyalarımda bulunduğunu gösteren bir HTTP 304 yanıtı olduğunu öğrendim. Sources.list.d dosyam aşağıdaki girişi içeriyor:

mongodb-org-3.4.list

Bu sorunu gidermeye devam etmek için ne yapmam gerekiyor?

EDIT: Bunu, VirtualBox altındaki 16.04 yeni kurulumunda tekrar yapmaya çalıştım. Anahtarı aldım, liste dosyasını yarattım sudo apt updateve aşağıdaki sonuçları yaptım :

jonathan@Ubuntu-16:~$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
[sudo] password for jonathan: 
Executing: /tmp/tmp.uWYpRUWfjK/gpg.1.sh --keyserver
hkp://keyserver.ubuntu.com:80
--recv
0C49F3730359A14518585931BC711F9BA15703C6
gpg: requesting key A15703C6 from hkp server keyserver.ubuntu.com
gpg: key A15703C6: public key "MongoDB 3.4 Release Signing Key <packaging@mongodb.com>" imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)
jonathan@Ubuntu-16:~$ echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse
jonathan@Ubuntu-16:~$ sudo apt update
Ign:1 http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 InRelease
Get:2 http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 Release [3 462 B]
Hit:3 http://mx.archive.ubuntu.com/ubuntu xenial InRelease               
Get:4 http://security.ubuntu.com/ubuntu xenial-security InRelease [94.5 kB]                   
Get:5 http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 Release.gpg [801 B]                      
Get:6 http://mx.archive.ubuntu.com/ubuntu xenial-updates InRelease [95.7 kB]           
Ign:5 http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 Release.gpg                       
Get:7 http://mx.archive.ubuntu.com/ubuntu xenial-backports InRelease [92.2 kB]                    
Reading package lists... Done      
W: GPG error: http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY D68FA50FEA312927
E: The repository 'http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 Release' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
jonathan@Ubuntu-16:~$ 

Gördüğünüz gibi, alınan anahtar Mongodb 3.2'ye değil Mongodb 3.4'e aitti ve bu durum GPG'nin apt güncellemesindeki başarısızlığını açıklıyor. Doğru anahtarı nereden bulacağını bilen var mı?

Yanıtlar:


74

Ubuntu 16.04 ve MongoDB 4.0

İlk önce, MongoDB için var olan depo dosyasını kaldırın.

sudo rm /etc/apt/sources.list.d/mongodb*.list

Sonra, anahtarı ekleyin: (anahtar olmadan depo yüklenmez )

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv E52529D4

Şimdi yeni bir MongoDB depo listesi dosyası oluşturun:

sudo bash -c 'echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.0 multiverse" > /etc/apt/sources.list.d/mongodb-org-4.0.list'

Kurulumu havuz güncellemesiyle tamamlayın, sonra kurun:

sudo apt update
sudo apt install mongodb-org

mongodHizmeti etkinleştirin ve başlatın:

systemctl enable mongod.service
systemctl start mongod.service

Mongodb versiyonunuzu kontrol edin:

~$ mongo --version
MongoDB shell version v4.0.5
git version: 3739429dd92b92d1b0ab120911a23d50bf03c412
OpenSSL version: OpenSSL 1.0.2g  1 Mar 2016
allocator: tcmalloc
modules: none
build environment:
    distmod: ubuntu1604
    distarch: x86_64
    target_arch: x86_64

Hizmetin çalışıp çalışmadığını kontrol edin:

~$ systemctl status mongod.service
● mongod.service - MongoDB Database Server
   Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2019-01-21 00:33:51 MST; 7s ago
     Docs: https://docs.mongodb.org/manual
 Main PID: 2906 (mongod)
   CGroup: /system.slice/mongod.service
           └─2906 /usr/bin/mongod --config /etc/mongod.conf

Ubuntu 18.04 ve MongoDB 4.0

MongoDB 4.0, 4.1'in şu an için önizleme yaptığı yerlerde kararlı olarak gösterilmektedir.

İlk önce, eğer takılıysa MongoDB'yi bir öncekinden kaldırın:

sudo apt remove --autoremove mongodb-org

Herhangi bir mongodb repo listesi dosyasını kaldırın:

sudo rm /etc/apt/sources.list.d/mongodb*.list
sudo apt update

Şimdi yeni anahtarı ekleyin:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv E52529D4

Yeni depo ekle:

sudo bash -c 'echo "deb [arch=amd64] http://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" > /etc/apt/sources.list.d/mongodb-org-4.0.list'

MongoDB'yi yükleyin

sudo apt update
sudo apt install mongodb-org

mongodSunucu servisini etkinleştirin ve başlatın :

systemctl enable mongod.service
systemctl start mongod.service

Kurulumu kontrol edin:

~$ mongo --version
MongoDB shell version v4.0.3
git version: 7ea530946fa7880364d88c8d8b6026bbc9ffa48c
OpenSSL version: OpenSSL 1.1.0g  2 Nov 2017
allocator: tcmalloc
modules: none
build environment:
    distmod: ubuntu1804
    distarch: x86_64
    target_arch: x86_64

Servisinizin başladığını da kontrol edebilirsiniz:

~$ systemctl status mongod.service
● mongod.service - MongoDB Database Server
   Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: e
   Active: active (running) since Sun 2018-10-07 12:33:46 MDT; 2min 34s ago
     Docs: https://docs.mongodb.org/manual
 Main PID: 5573 (mongod)
   CGroup: /system.slice/mongod.service
           └─5573 /usr/bin/mongod --config /etc/mongod.conf

Bu yardımcı olur umarım!


1
Bunun için teşekkürler. Doğru anahtarı almak kritik kısımdı.
Jonathan,

gpg: keyserver almak başarısız oldu: Sunucu bir başarısızlık göstermiştir
Máxima Alekz

@ MáximaAlekz Cevabımı kontrol et.
Tpojka

Çok teşekkürler, @Terrance. Bana çok zaman kazandırdın.
Anirudh Thatipelli

Çok teşekkürler arkadaşım!
Jovana

10

@Terrance'ın cevabına ek olarak, işte uygun sig anahtarını nasıl bulabileceğiniz. Örnek bu durumda mongodb'a uygulanabilir ancak benzer şekilde başka bir paket için kullanılabilir. @Terrance'ın cevabından satırları çalıştırmadan önce:

  1. Gerçek anahtarı bulmak için ubuntu anahtar sunucusuna gidin.

  2. İlgilendiğiniz diziyi arayın (mongodb durumunda) ve ilk formu gönderin (bunun için ikinci forma ihtiyacınız yoktur) - düğmesine Search!tıklayın

görüntü tanımını buraya girin

  1. Sağlanan arama listesinde sürümünüzü arayın (buradaki örneğimde 3.4 idi)

görüntü tanımını buraya girin

  1. Orada tuşlarla iki sıra görebilirsiniz. Tarihe göre en gerçek odaklanın. İlk dize, oluşturulan tarih geçerli iken ikincisi geçerli olan tarih.

  2. 5. maddede belirtilen satırdaki sig'ı kullanın - resimden olması durumunda A15703C6

  3. Paket yüklemeniz veya kendim gibi güncellemeniz gerekip gerekmediğini Terrance'ın cevabına devam edin


1
Teşekkürler. Bu bana çok zaman kazandırdı!
akazuko

1

Benim için hiçbir şey işe yaramadı, ben de mogodb web sitesine gittim ve tarball'dan yüklemek için şu talimatları izledim :

Bağımlılıkları yükle:

sudo apt-get install libcurl3 openssl

Tarball'ı bu sayfadan indirin

cd Yüklemeler dizinine veya dosyanın nereye gittiğine gidin, dosyayı çıkartın:

tar -zxvf mongodb-linux-*-4.0.1.tgz

İkili dosyalar binayıklanan yapının dizinindedir. Bu dizini PATH'e ekleyebilir veya dosyaları /usr/local/binya da başka bir PATH konumuna kopyalayabilirsiniz .


Yanıtlar sizin için işe yaramayacak şekilde farklı bir sürüm yüklediniz, o sırada yukarıda listelenenler. O zamandan beri cevabımı güncelledim. Her sürüm için anahtar değişir ve depo değişir. Cevabımı çıktığında yeni sürümler için güncel tutmaya çalışacağım.
Terrance
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.