Я только что набрал:
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.
решение1
Проблема в:
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-updates
иtrusty-security
нажмитеCloseЕсли у кого-то есть версия для терминала, то дайте знать, пожалуйста.
Reload
Установить
sudo apt-get install g++
Мой второй выбор — понижение рейтинга
Хм, я бы сказал, это плохая идея."="
решение2
Потому что Ubuntu 14.04 источника слишком старый или недоступен. Поэтому мы должны обновить источник. Это будет решено. Во-первых, мы должны сделать резервную копию исходного файлаsources.list
sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup
Согласно версии Ubuntu для добавления новых источников.
Команда запроса версии:
lsb_release -a
Затем он распечатает следующую информацию:
No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 14.04.4 LTS Release: 14.04 Codename: trusty
В зависимости от версии выберите подходящий источник и добавьте в конец файла '/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
Обновить источник
sudo apt-get update
ХОРОШО
sudo apt-get install g++