インストールg ++ ubuntu 14.04依存:g ++-4.8(> = 4.8.2-5〜)がインストールされない


9

私はただタイプした:

sudo apt-get install g++

そして得た:

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.

私は他のフォーラムの提案に従っても試しました:

sudo apt-get update

そして

sudo apt-get -f install

誰も私の問題を解決しませんでした。あなたが答えを知っているなら助けてください。

編集:

コメントにある提案に従って、私は試してみました:

sudo apt-cache policy g++-4.8

そして、次の出力を得ました:

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

試みることによって:

sudo apt-get install g++-4.8

私は得ました:

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.

これらのapt-getコマンドの出力/エラーは何ですか?
ダニエル

apt-get updateは、リポジトリを更新するだけです...出力行はたくさんありますが、エラーはありません... apt-get -f installは、0をアップグレード、0を新しくインストール、0を削除、44をアップグレードしません。
alecrosic

質問を編集して、出力を追加しますapt-cache policy g++-4.8
AB

経由sudo apt-get install g++-4.8でインストールを強制して、質問に出力を追加してみてください。別のエラーメッセージが表示されます。そして、実際の問題を見つけるには、このメッセージが必要です。
AB

そして、@A.B.Without thatでコメントを送ってください。あなたがあなたの質問を変更したという通知を受け取りません。
AB

回答:


9

問題は:

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

どうして?それが理由です:

  • libstdc++-4.8-dev メインのリポジトリでは libstdc++-4.8-dev=4.8.2-19ubuntu1

  • libstdc++-4.8-dev更新リポジトリlibstdc++-4.8-dev=4.8.4-2ubuntu1~14.04では、システムにインストールされているに依存します


ソリューション?

私の最初の選択は、更新リポジトリを再度有効にすることです:

  • Software & Updatesタブを開くUpdates

  • 選択trusty-updatestrusty-securityてクリックClose

    誰かが端末のバージョンを持っているなら、私に知らせてください。

    ここに画像の説明を入力してください

  • Reload

    ここに画像の説明を入力してください

  • インストール

    sudo apt-get install g++
    

私の2番目の選択、ダウングレード

うーん、それは悪い考えです=)


更新を有効にしてリロードを機能させる!ありがとうございました。
alecrosic

これらはすでにチェックされていますが、チェックを外してから再度チェックしてからリロードすることもできます。
ミッチ

0

ソースのUbuntu 14.04が古すぎるかアクセスできないためです。ソースを更新する必要があります。これは解決されます。まず、ソースファイルをバックアップする必要がありますsources.list

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

Ubuntuのバージョンによると、新しいソースを追加します。

  1. バージョンコマンドをクエリします。

    lsb_release -a
    

    次に、次のような情報を出力します。

    No LSB modules are available.
    Distributor ID: Ubuntu
    Description:    Ubuntu 14.04.4 LTS
    Release:    14.04
    Codename:   trusty
    
  2. verison to choice Suitbaleソースに従って、「/ etc / apt / sources.list」ファイルの最後に追加します。

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

    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. ソースを更新

    sudo apt-get update
    
  4. OK

    sudo apt-get install g++
    
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.