Назад | Перейти на главную страницу

Как установить необходимые сборки на Ubuntu 12.04? (проблемы с зависимостями gcc и g ++)

Я только что установил сервер Ubuntu 12.04 LTS. Я пытаюсь установить пакет, необходимый для сборки; однако, когда я пытаюсь установить его, я получаю следующую ошибку:

Some packages could not be installed. this may mean that you have an impossible situation or it you are using the unstable distribution that some required packages have not yer been created or been moved out of Incoming.
The following information may help to resolve this situation:

The following packages have unmet dependencies:
 build-essential : Depends: gcc (>= 4:4.4.3) but it is not installable
                   Depends: g++ (> 4:4.4.3) but it is not installable
E: Unalbe to correct problems, you have held broken packages.

Перед установкой я обязательно сделал обновление apt-get. Но все равно не работает.

[РЕДАКТИРОВАТЬ]

На основе предложений Питера:

Содержание /etc/apt/sources.list как следует:

enter code here

# deb cdrom:[Ubuntu-Server 12.04.5 LTS _Precise Pangolin_ - Release amd64 (20140806.1)]/ dists/precise/main/binary-i386/
# deb cdrom:[Ubuntu-Server 12.04.5 LTS _Precise Pangolin_ - Release amd64 (20140806.1)]/ dists/precise/restricted/binary-i386/
# deb cdrom:[Ubuntu-Server 12.04.5 LTS _Precise Pangolin_ - Release amd64 (20140806.1)]/ precise main restricted

#deb cdrom:[Ubuntu-Server 12.04.5 LTS _Precise Pangolin_ - Release amd64 (20140806.1)]/ dists/precise/main/binary-i386/
#deb cdrom:[Ubuntu-Server 12.04.5 LTS _Precise Pangolin_ - Release amd64 (20140806.1)]/ dists/precise/restricted/binary-i386/
#deb cdrom:[Ubuntu-Server 12.04.5 LTS _Precise Pangolin_ - Release amd64 (20140806.1)]/ precise main restricted

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://us.archive.ubuntu.com/ubuntu/ precise main restricted
deb-src http://us.archive.ubuntu.com/ubuntu/ precise main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://us.archive.ubuntu.com/ubuntu/ precise-updates main restricted
deb-src http://us.archive.ubuntu.com/ubuntu/ precise-updates main restricted

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://us.archive.ubuntu.com/ubuntu/ precise universe
deb-src http://us.archive.ubuntu.com/ubuntu/ precise universe
deb http://us.archive.ubuntu.com/ubuntu/ precise-updates universe
deb-src http://us.archive.ubuntu.com/ubuntu/ precise-updates universe

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu 
## team, and may not be under a free licence. Please satisfy yourself as to 
## your rights to use the software. Also, please note that software in 
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://us.archive.ubuntu.com/ubuntu/ precise multiverse
deb-src http://us.archive.ubuntu.com/ubuntu/ precise multiverse
deb http://us.archive.ubuntu.com/ubuntu/ precise-updates multiverse
deb-src http://us.archive.ubuntu.com/ubuntu/ precise-updates multiverse

## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://us.archive.ubuntu.com/ubuntu/ precise-backports main restricted universe multiverse
deb-src http://us.archive.ubuntu.com/ubuntu/ precise-backports main restricted universe multiverse

deb http://security.ubuntu.com/ubuntu precise-security main restricted
deb-src http://security.ubuntu.com/ubuntu precise-security main restricted
deb http://security.ubuntu.com/ubuntu precise-security universe
deb-src http://security.ubuntu.com/ubuntu precise-security universe
deb http://security.ubuntu.com/ubuntu precise-security multiverse
deb-src http://security.ubuntu.com/ubuntu precise-security multiverse

## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu precise partner
# deb-src http://archive.canonical.com/ubuntu precise partner

## Uncomment the following two lines to add software from Ubuntu's
## 'extras' repository.
## This software is not part of Ubuntu, but is offered by third-party
## developers who want to ship their latest software.
deb http://extras.ubuntu.com/ubuntu precise main
deb-src http://extras.ubuntu.com/ubuntu precise main

sudo apt-get install gcc производит:

sudo apt-get install gcc
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package gcc 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 'gcc' has no installation candidate

sudo dpkg -C ничего не возвращает.

  1. Проверьте свои /etc/apt/sources.list, может у вас несколько дистрибутивов?
  2. В нем говорится, что gcc (по крайней мере, с версии 4.4.3) не устанавливается, почему? Вы можете легко это проверить, попытавшись установить это с помощью команды apt-get install gcc.
  3. Проверьте, есть ли в вашей системе только чистые пакеты с dpkg -C команда. Если есть поврежденные или ненастроенные пакеты, исправьте их с помощью dpkg --configure -a или удалив / переустановив их.

Часто бывает, что у вас есть несколько пакетов в нескольких версиях в ваших удаленных репозиториях. Например, у вас есть сборка, необходимая для тестирования и стабильной версии, но соответствующий gcc доступен только из стабильной версии. Следствие:

  • Пытаясь установить необходимое для сборки, менеджер пакетов пытается получить вашу последнюю версию пакета,
  • но для этой версии пакета требовалась более новая версия gcc, как и в вашем стабильном репозитории.

Подобные проблемы вы легко можете решить с помощью простого apt-cache show build-essential. Если вы получаете несколько пакетов (с разными версиями), вы можете попробовать более раннюю версию. apt-get install packagename=1.2.3 установит вам пакет с версией 1.2.3.

Предлагаю расширить ваш вопрос выводом ваших команд.

Нашел решение. После дополнительных экспериментов я обнаружил, что нельзя также установить другие пакеты с помощью apt. Затем я заметил, что при запуске обновления apot-get возникают ошибки несоответствия хеш-суммы. В конце концов, я обнаружил, что выполнение следующих команд устранило мою проблему:

apt-get clean
rm -rf /var/lib/apt/lists/*
apt-get clean
apt-get update
apt-get upgrade

После запуска я теперь могу установить пакет, необходимый для сборки.