LINUX.ORG.RU

Кольцевые зависимости в Ubuntu


0

0

G++-4.4 требует libstdc++-dev, а libstdc++-dev требует G++. Как это обойти?

Если задача напрямую нерешаема, то вот дополнительные условия. На компьютере нет интернета, все дебы таскаются на 500-мегабайтной флешке с другого конца города. CD, DVD и бОльшие флешки недоступны. Список пакетов на ubuntu.com и их зависимостей на компьютере отсутствует (его можно поставить? как?). Есть ли программы или сайты для генерации качающих дебы скриптов?

Заранее спасибо.

P.S. Вопрос несрочный. Ответы прочитаю только через несколько дней.

★★★★★

> Есть ли программы или сайты для генерации качающих дебы скриптов?
apt-zip, synaptic

AITap ★★★★★
()
Ответ на: комментарий от AITap

>> Есть ли программы или сайты для генерации качающих дебы скриптов?

apt-zip, synaptic

Где взять список файлов в официальных репозиториях и как им подсунуть?

question4 ★★★★★
() автор топика

За остальные советы спасибо, попробую.

question4 ★★★★★
() автор топика
Ответ на: комментарий от question4

Хороший вопрос. man гласит,

For example, when using a Debian archive, this command retrieves and scans the Packages.gz files, so that
information about new and updated packages is available.

Похоже, содержимое Packages.gz распаковывается и дописывается к /var/lib/dpkg/available, но я могу ошибаться. Скачать и посмотреть исходники apt-get было бы интересно, но сейчас я этого не могу сделать.

AITap ★★★★★
()
Ответ на: комментарий от Sylvia

> dpkg --install --force-depends package.deb

Спасибо, но установленный таким образом g++ не работает, а apt-get, synaptic и aptitude при каждом запуске хотят его удалить.

При компиляции hello.cpp ~60 ошибок :)

А ЛОР непонятно как на работе добавили в белый список.

question4 ★★★★★
() автор топика
Ответ на: комментарий от AptGet

> Use --force

Как после его применения настроить эти 2 пакета друг под друга? G++ после такой установки не находит часть хедеров.

question4 ★★★★★
() автор топика
Ответ на: комментарий от question4

>Как после его применения настроить эти 2 пакета друг под друга? G++ после такой установки не находит часть хедеров.

dpkg --configure -a

AptGet ★★★
()
Ответ на: комментарий от JackYF

> А должно. Логи в студию.

Завтра-послезавтра. Или в субботу. По памяти — пишет примерно следующее:
невозможно настроить g++, т.к. ему нужен g++-4.4;
невозможно настроить g++-4.4, т.к. ему нужен libstdc++-dev;
невозможно настроить libstdc++-dev, т.к. ему нужен g++-4.4.
Следующие пакеты не были настроены: g++, g++-4.4, libstdc++-dev.

question4 ★★★★★
() автор топика
Ответ на: комментарий от AptGet

> dpkg --configure -a

Предлагает удалить все неправильно установленные пакеты :) Если согласиться — удаляет, и всё сначала.

question4 ★★★★★
() автор топика
Ответ на: комментарий от ahonimous

> не верю

Могу прислать фотографию экрана.

Баг признан мэйнтэйнерами Дебиана ещё прошлой весной. Решено в следующих версиях эти пакеты объединить. Но как жить с версией 4.4.3, я не нашёл.

question4 ★★★★★
() автор топика
Ответ на: комментарий от question4

>Предлагает удалить все неправильно установленные пакеты :) Если согласиться — удаляет, и всё сначала.

Имхо, у вас в системе есть пакеты (от которых зависят g++/libstdc++-dev), нуждающиеся в обновлении.

AptGet ★★★
()
Ответ на: комментарий от AptGet

> Имхо, у вас в системе есть пакеты (от которых зависят g++/libstdc++-dev), нуждающиеся в обновлении.

Именно так и оказалось. libc6 :(

question4 ★★★★★
() автор топика
Ответ на: комментарий от question4

> установленный таким образом g++ не работает

А, нет, моя ошибка. Все переключатели dpkg должны стоять до списка deb-ов. Теперь g++ нормально собирает учебные примеры. А вот gcc отказывается их собирать.

question4 ★★★★★
() автор топика
Ответ на: комментарий от annulen

> math.h инклудим?

Нет, чистый hello_world.cpp :)

тогда не забываем писать -lm

Спасибо. Может, пригодится.

question4 ★★★★★
() автор топика

G++ заработал, остальное терпит. Всем спасибо за советы, особенно Sylvia и AptGet.

question4 ★★★★★
() автор топика
Ответ на: комментарий от question4

я на этом часто фэйлил раньше :) При компиляции с++ libm линкуется автоматически, а в C нет

annulen ★★★★★
()
Ответ на: комментарий от question4

>> в системе есть пакеты (от которых зависят g++/libstdc++-dev), нуждающиеся в обновлении.

Именно так и оказалось. libc6 :(

Обновил libc6 и libc-bin. Всё заработало нормально. Когда набрал в одной строке все устанавливаемые и обновляемые пакеты, поставилось даже без --force.

question4 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.