Zainstaluj g ++ ubuntu 14.04 Zależy: g ++ - 4.8 (> = 4.8.2-5 ~), ale nie zostanie zainstalowany

9

Właśnie wpisałem:

sudo apt-get install g++

i dostał:

The following packages have unmet dependencies:
 g++ : Depends: g++-4.8 (>= 4.8.2-5~) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Próbowałem też zgodnie z sugestiami na innych forach:

sudo apt-get update

i

sudo apt-get -f install

Żaden nie rozwiązał mojego problemu. Proszę o pomoc, jeśli znasz odpowiedź.

EDYTOWAĆ:

Zgodnie z sugestią zamieszczoną w komentarzu próbowałem:

sudo apt-cache policy g++-4.8

i uzyskał następujące dane wyjściowe:

g++-4.8:
  Installed: (none)
  Candidate: 4.8.2-19ubuntu1
  Version table:
     4.8.2-19ubuntu1 0
        500 http://ca.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages

Próbując:

sudo apt-get install g++-4.8

Mam:

The following packages have unmet dependencies:
 g++-4.8 : Depends: gcc-4.8-base (= 4.8.2-19ubuntu1) but 4.8.4-2ubuntu1~14.04 is to be installed
           Depends: gcc-4.8 (= 4.8.2-19ubuntu1) but 4.8.4-2ubuntu1~14.04 is to be installed
           Depends: libstdc++-4.8-dev (= 4.8.2-19ubuntu1) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
Alecrosic
źródło
Jakie są dane wyjściowe / błędy tych apt-getpoleceń?
Daniel
aktualizacja apt-get po prostu aktualizuje repozytorium ... wiele linii wyjściowych, ale bez błędów ... apt-get -f install daje: 0 zaktualizowane, 0 nowo zainstalowane, 0 do usunięcia i 44 nie zaktualizowane.
alecrosic
Edytuj swoje pytanie i dodaj wynikapt-cache policy g++-4.8
AB
Spróbuj wymusić instalację przez sudo apt-get install g++-4.8i dodaj wynik do swojego pytania. Powinien zostać wyświetlony kolejny komunikat o błędzie. Potrzebujemy tego komunikatu, aby znaleźć prawdziwy problem.
AB
I daj mi komentarz @A.B.Bez tego nie otrzymuję powiadomienia, że ​​zmieniłeś swoje pytanie.
AB

Odpowiedzi:

9

Problemem jest:

libstdc++-4.8-dev : Depends: gcc-4.8-base (= 4.8.2-19ubuntu1) but 4.8.4-2ubuntu1~14.04 is to be installed

Dlaczego? Dlatego:

  • libstdc++-4.8-dev w głównych repozytoriach zależy od libstdc++-4.8-dev=4.8.2-19ubuntu1

  • libstdc++-4.8-devw repozytorium aktualizacji zależy od tego libstdc++-4.8-dev=4.8.4-2ubuntu1~14.04, co jest zainstalowane w twoim systemie


Rozwiązanie?

Moim pierwszym wyborem jest ponowne włączenie repozytorium aktualizacji:

  • Otwórz Software & Updatesi kartęUpdates

  • Wybierz trusty-updatesi trusty-securityi kliknijClose

    Jeśli ktoś ma wersję terminala, daj mi znać.

    wprowadź opis zdjęcia tutaj

  • Reload

    wprowadź opis zdjęcia tutaj

  • zainstalować

    sudo apt-get install g++
    

Mój drugi wybór, obniżenie wersji

Hmm, powiedziałbym, to zły pomysł =)

AB
źródło
włączanie aktualizacji i przeładowywanie działa! Dziękuję Ci.
alecrosic
Zostały już dla mnie sprawdzone, ale ich odznaczenie i ponowne sprawdzenie, a następnie przeładowanie również działa.
Mitch
0

Ponieważ Ubuntu 14.04 źródła jest zbyt stare lub niedostępne, dlatego powinniśmy zaktualizować źródło. Zostanie to rozwiązane. Najpierw powinniśmy wykonać kopię zapasową pliku źródłowegosources.list

sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup

Zgodnie z wersją Ubuntu, aby dodać nowe źródła.

  1. Zapytaj o komendę wersji:

    lsb_release -a
    

    Następnie wydrukuje takie informacje, jak:

    No LSB modules are available.
    Distributor ID: Ubuntu
    Description:    Ubuntu 14.04.4 LTS
    Release:    14.04
    Codename:   trusty
    
  2. Zgodnie z wersją do wyboru źródło suitbale i dodać na końcu pliku „/etc/apt/sources.list”.

    http://wiki.ubuntu.org.cn/Template:14.04source,
    

    Źródło Ubuntu 14.04:

    deb http://archive.ubuntu.com/ubuntu/ trusty main restricted universe multiverse
    deb http://archive.ubuntu.com/ubuntu/ trusty-security main restricted universe multiverse
    deb http://archive.ubuntu.com/ubuntu/ trusty-updates main restricted universe multiverse
    deb http://archive.ubuntu.com/ubuntu/ trusty-proposed main restricted universe multiverse
    deb http://archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse
    deb-src http://archive.ubuntu.com/ubuntu/ trusty main restricted universe multiverse
    deb-src http://archive.ubuntu.com/ubuntu/ trusty-security main restricted universe multiverse
    deb-src http://archive.ubuntu.com/ubuntu/ trusty-updates main restricted universe multiverse
    deb-src http://archive.ubuntu.com/ubuntu/ trusty-proposed main restricted universe multiverse
    deb-src http://archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse
    
  3. Zaktualizuj źródło

    sudo apt-get update
    
  4. ok

    sudo apt-get install g++
    
Jack Ma
źródło