«google-chrome-stable зависит от libstdc ++ 6 (= 4.8.0); однако: Версия libstdc ++ 6 в системе - 4.6.3-1ubuntu5. "

10

Я пытаюсь установить google-chrome-stable на новую установку ubuntu 12.04. Я запускаю следующие команды

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome*.deb

Я получаю следующие ошибки:

dpkg: dependency problems prevent configuration of google-chrome-stable:
 google-chrome-stable depends on libstdc++6 (>= 4.8.0); however:
Version of libstdc++6 on system is 4.6.3-1ubuntu5.
 google-chrome-stable depends on lsb-base (>= 4.1); however:
Version of lsb-base on system is 4.0-0ubuntu20.3.
dpkg: error processing google-chrome-stable (--install):
 dependency problems - leaving unconfigured
Processing triggers for man-db ...
Processing triggers for bamfdaemon ...
Rebuilding /usr/share/applications/bamf.index...
Processing triggers for desktop-file-utils ...
Processing triggers for gnome-menus ...
Errors were encountered while processing:
 google-chrome-stable

Когда я запускаю sudo apt-get install -f , я просто удаляю google-chrome-stable:

The following packages will be REMOVED
  google-chrome-stable

Если я ищу требуемые версии, например. Я пытаюсь sudo apt-get install libstdc++6=4.8.0 Я не могу найти версию:

E: Version ‘4.8.0’ for ‘libstdc++6’ was not found

Как это исправить?

Я знаю, что больше нет поддержки 32-разрядной версии Ubuntu 12.04. Я запускаю 64-битную версию Ubuntu.

    
задан fmonegaglia 18.04.2016 в 06:23
источник

6 ответов

13

Вы получаете эти ошибки, потому что Google завершил поддержку Ubuntu 12.04.

Google: мы закончим поддержка Google Chrome на 32-разрядной Linux, Ubuntu Precise (12.04).

Вы также можете установить chromium-browser , на котором встроен Google Chrome.

Вы также можете установить Ubuntu 14.04 LTS или Ubuntu 15.10 - оба поддерживаются - для использования Chrome.

Но я предлагаю вам подождать до 21 апреля, когда будет выпущен новый Ubuntu 16.04 LTS.

Вы должны учитывать, что Ubuntu 12.04 LTS имеет только один год официальной поддержки безопасности.

    
ответ дан cl-netbox 18.04.2016 в 08:12
6

Последнее изменение (2017-09-13) :

Это решение больше не работает для выпусков Chrome 60 и . Последние пакеты зависят от libc6 ≥ 2.17, которые не могут быть установлены на Ubuntu 12.04. Если вы все еще используете Precise, вы должны либо рассмотреть возможность обновления (например, я), либо если вы не можете этого сделать, переключитесь на другой браузер (хотя на данный момент вы вряд ли найдете какие-либо данные, которые все еще поддерживаются).

Изменить (2016-12-06) . Похоже, Chrome теперь зависит от обновленной версии libfontconfig1 (≥ 2.9.0). Я обновил сценарий соответственно. Новая версия, похоже, работает до сих пор, но учтите, что с каждой притворной зависимостью вы можете ожидать, что приложение станет менее стабильным.

Изменить (2017-06-10) . Chrome 59 поставляется с новыми зависимостями (libfontconfig1 ≥ 2.11, libpango и libpangocairo). Я обновил сценарий, чтобы удалить их. Эта же оговорка относительно стабильности Chrome применяется снова.

Обходной путь для проблем с зависимостями на Ubuntu 12.04 64bit

Официальная поддержка Chrome для Ubuntu версии 12.04 закончилась, но это не значит, что вам пока еще нужно отказаться от Chrome. Ниже приводится краткое руководство по установке последней версии Chrome (начиная с 2016-06-28) на 64-разрядной версии Ubuntu 12.04.

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

Предпосылки

Обновлено ядро ​​

Важно: Обратите внимание, что обновление вашего ядра может сопровождаться собственным набором проблем и проблем с совместимостью оборудования. Убедитесь, что вы знаете, как переключиться на предыдущее ядро, прежде чем приступать к этому шагу.

Последние выпуски Chrome зависят от ряда функций ядра, связанных с песочницей, которые недоступны в ядре Ubuntu 12.04 по умолчанию (3.2.0). Если вы установили Ubuntu 12.04 с использованием более позднего изображения (точечный выпуск 12.04.2 и выше), скорее всего, вы уже занимаетесь обновлением ядра; но если вы все еще находитесь в исходном выпуске ядра, вы можете обновить его до стека ядра Ubuntu 14.04 через пакет стека аппаратного обеспечения LTS :

sudo apt-get install --install-recommends linux-generic-lts-trusty

Обязательно перезагрузите систему после выполнения обновления ядра. Если все пойдет хорошо, ваша система должна теперь использовать ядро ​​Linux 3.13.X.

Проблемы с зависимостями

Если вы посмотрите на сообщение об ошибке, которое вы получаете при попытке установить последнюю сборку Chrome, вы увидите две различные проблемы с зависимостями:

  1. libstdc++6 (>= 4.8.0) : это стандартная библиотека C ++ GNU. Chrome версии 50.X и выше зависят от версии 4.8.0 от этой библиотеки, но Ubuntu 12.04 по умолчанию имеет 4.6.3.
  2. lsb-base (>= 4.1) : это базовый пакет Linux Standard Base. Это указывает на соответствие дистрибутива ряду стандартов, установленных Linux Foundation. Для выпусков Chrome 50.X + требуется соответствие стандартам, определенным в базе LSB 4.1, но Ubuntu 12.04 совместим только с 4.0.

Как выясняется, обе эти проблемы могут быть исправлены довольно легко:

libstdc ++ 6 (& gt; = 4.8.0)

Важно: libstdc ++ 6 - важная системная библиотека, от которой зависят многие разные пакеты. Обновление этого пакета до более новой версии может быть опасным и может привести к проблемам с системой. Я не испытывал проблем самостоятельно в двух системах, на которых я выполнил это обновление, но, как всегда, ваш пробег может отличаться.

К счастью для нас, libstdc++6 4.8.X доступно в официальном сборнике Ubuntu . PPA . В качестве первого шага мы добавим этот PPA в наши источники программного обеспечения:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update

Установка Google Chrome с этого момента приведет к зависанию libstdc++6 от PPA, устраняя первую проблему с зависимостями. Исходя из этого, перейдем к второй проблеме.

lsb-base (& gt; = 4.1)

Оказывается, нам не нужно устанавливать обновленную версию этого пакета, чтобы получить последние версии Chrome. На данный момент Chrome, похоже, не зависит от каких-либо модифицированных стандартов в базе LSB 4.1, поэтому зависимость от lsb-base (>= 4.1) кажется мягкой зависимостью, которую мы можем просто удалить.

Конечно, вы можете сделать это вручную, но я написал сценарий, который выполняет следующие шаги для вас.

Установочный сценарий

#!/bin/bash

# Name:         Chrome installer for Ubuntu 12.04 LTS 64-bit
# Author:       (c) 2016-2017 Glutanimate
# License:      GNU GPLv3
# Manual:       http://askubuntu.com/a/792442/

# Description:
#
# Downloads latest chrome release and makes it compatible with 12.04.
#
# This is a hack that will likely stop working at some point,
# but for those of us who can't upgrade Ubuntu just yet
# it's better than running a completely obsolete Chrome release.

set -e

tmpDir=$(mktemp -d /tmp/deb.XXXXXXXXXX)
debUrl="https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb"
debFile="$tmpDir/chrome.deb"

cleanup () {
  [[ -n "$tmpDir" ]] && [[ -d "$tmpDir" ]] && rm -r "$tmpDir"
}

trap "cleanup" EXIT

echo "Downloading latest Chrome release..."
mkdir -p "$tmpDir/build"
buildDir="$tmpDir/build"
wget "$debUrl" -O "$tmpDir/chrome.deb" || exit 1
echo "Extracting original deb file..."
dpkg-deb -x "$debFile" "$buildDir"
dpkg-deb --control "$debFile"  "$buildDir/DEBIAN"
echo "Updating dependencies..."
perl -pe  's|lsb-base \(\>\= 4\.1\)|lsb-base \(\>\= 4\.0\)|g' "$buildDir/DEBIAN/control" > "$buildDir/DEBIAN/control.1"
perl -pe  's|libfontconfig1 \(\>\= 2\.11\)|libfontconfig1 \(\>\= 2\.8\.0\)|g' "$buildDir/DEBIAN/control.1" > "$buildDir/DEBIAN/control"
perl -pe  's|libpango-1\.0-0 \(\>\= 1\.14\.0\), libpangocairo-1\.0-0 \(\>\= 1\.14\.0\), ||g' "$buildDir/DEBIAN/control" > "$buildDir/DEBIAN/control.1"
mv "$buildDir/DEBIAN/control.1" "$buildDir/DEBIAN/control"
echo "Building new deb file..."
dpkg -b "$buildDir" "$tmpDir/chrome_modified.deb"
echo "Installing new Chrome version. Please enter your password:"
sudo dpkg -i "$tmpDir/chrome_modified.deb"

Скопируйте сценарий выше, сохраните его как install_chrome.sh и пометьте его как исполняемый файл (либо через chmod +x install_chrome.sh , либо диалог свойств вашего файлового менеджера).

Сделав это, вы можете выполнить скрипт, используя:

./install_chrome.sh

Сценарий продолжит загрузку последней стабильной версии Chrome, изменив ее, чтобы удалить зависимость от lsb-base 4.1 и предложите установить обновленный файл .deb через dpkg .

Поздравляем, теперь вы используете обновленную версию Google Chrome на Ubuntu 12.04!

Обновление

Чтобы обновить Chrome, просто запустите сценарий еще раз.

Будущая совместимость

Важно: . Поскольку это решение может перестать работать в любое время, я бы посоветовал вам всегда сохранять последний рабочий файл измененного файла .deb в качестве резервной копии, если Chrome вдруг откажется запускать из-за обновление.

Чтобы сохранить последний модифицированный установщик, просто зайдите в временный каталог сценария сразу после получения приглашения пароля sudo при запуске скрипта (т. е. прямо перед установкой модифицированного файла .deb ). Временная директория должна быть расположена где-то в /tmp/deb.XXXXXXXXX (где XXXXXXXXX - случайная строка).

    
ответ дан Glutanimate 28.06.2016 в 19:10
4

Я не думаю, что ты можешь. Они только что обновились, а зависимости не могут быть выполнены в 12.04 .

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

Очевидно, что это отличный ответ, я долго искал и не мог найти способ без понижения.

    
ответ дан lathonez 18.04.2016 в 07:36
2

Поскольку Google перестала поддерживать Chrome и 12.04, лучшим решением является установка Chromium:

wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo apt-get update
sudo apt-get install chromium-browser
    
ответ дан Arahkun 08.06.2016 в 12:48
1
dpkg: dependency problems prevent configuration of google-chrome-stable:
 google-chrome-stable depends on libstdc++6 (>= 4.8.0); however:
Version of libstdc++6 on system is 4.6.3-1ubuntu5.
 google-chrome-stable depends on lsb-base (>= 4.1); however:
Version of lsb-base on system is 4.0-0ubuntu20.3.

В основном, Google Chrome запрашивает lsb-base и libstdc ++ 6, которые недоступны в Precise:

>lsb-base   | 4.0-0ubuntu20          | precise         | all
>lsb-base   | 4.0-0ubuntu20.3        | precise-updates | all
 lsb-base   | 4.1+Debian11ubuntu6    | trusty          | all
 lsb-base   | 4.1+Debian11ubuntu6.1  | trusty-proposed | all
 lsb-base   | 4.1+Debian11ubuntu8    | vivid           | all
 lsb-base   | 4.1+Debian11ubuntu8    | wily            | all
 lsb-base   | 9.20160110             | xenial          | all
>libstdc++6 | 4.6.3-1ubuntu5         | precise         | amd64, armel, armhf, i386, powerpc
 libstdc++6 | 4.8.2-19ubuntu1        | trusty          | amd64, arm64, armhf, i386, powerpc, ppc64el
 libstdc++6 | 4.8.4-2ubuntu1~14.04.1 | trusty-updates  | amd64, arm64, armhf, i386, powerpc, ppc64el
 libstdc++6 | 4.9.2-10ubuntu13       | vivid           | amd64, arm64, armhf, i386, powerpc, ppc64el
 libstdc++6 | 5.2.1-22ubuntu2        | wily            | amd64, arm64, armhf, i386, powerpc, ppc64el
 libstdc++6 | 5.3.1-14ubuntu2        | xenial          | amd64, arm64, armhf, i386, powerpc, ppc64el, s390x

Вам понадобится Trusty (также LTS) или более поздняя версия для установки google-chrome из Google или просто установите тот, который предоставляется хром-браузером репозиториев Ubuntu.

    
ответ дан Braiam 18.04.2016 в 15:04
1

Я не могу напрямую комментировать ответ на Glutanimate, но я хотел бы поделиться им в любом случае. Мне нужно было добавить дополнительную строку к installscript:

perl -pe  's|libnspr4 \(\>\= 2\:4\.9\-2\~\)|libnspr4 \(\>\= 4\.12\)|g' "$buildDir/DEBIAN/control.1" > "$buildDir/DEBIAN/control"

Кажется, что Chrome работает нормально, но это не позволило мне установить его в противном случае.

    
ответ дан Fabian Dellwing 19.07.2017 в 14:14