“Стабільний google-chrome залежить від 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:

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.


@glut фактичний заголовок точний. Він говорить про точне повідомлення про помилку.
Браїам

@Braiam Я стверджую, що це лише частково точно, тому що воно не включає помилку
lsb_base

@Glutanimate, але lsb-base не має бібліотеки / двійкових файлів, якими користується Chrome.
Брайям

@Braiam Добре, правда. Тепер, коли я думаю про це, більшість користувачів все одно будуть шукати першу частину повідомлення про помилку, тож давайте залишимося на цьому.
Glutanimate

Відповіді:


14

Ви отримуєте ці помилки, оскільки Google закінчив підтримку Ubuntu 12.04.

Google: Ми припинимо підтримку Google Chrome на 32-бітному Linux, Ubuntu Precision (12.04).

Ви також можете встановити, chromium-browserна якому вбудований Google Chrome.

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

Але я пропоную зачекати до 21 квітня, коли буде випущений новий Ubuntu 16.04 LTS.

Вам слід врахувати, що Ubuntu 12.04 LTS залишився лише рік офіційної підтримки безпеки.


У мене 64-бітна версія Ubuntu. Я щойно перевстановив операційну систему, до того, як тиждень тому я мав хром, працював над тією ж точною конфігурацією. Мій поганий, я цього не сказав, вибачте
fmonegaglia

5
@fmonegaglia: Найважливіше тут - Ubuntu 12.04, як правило, більше не підтримується, незалежно від того, чи використовується 32-бітна або 64-бітна версія Ubuntu. Google Chrome можна встановити лише на 64-бітних версіях Ubuntu, які підтримуються, починаючи з Ubuntu 14.04 ... :)
cl-netbox

Це, безумовно, правильна відповідь. На жаль, деякі з нас застрягли з 12.04 з будь-якої причини. Необхідно витратити зусилля на вихід 12.04, а не на тимчасові рішення, як, наприклад, зниження рівня (нижче). Однак іноді вам просто потрібно налагодити роботу.
lathonez

6

Остання редакція (2017-09-13) :

Це рішення більше не працює для Chrome версій 60 і вище . Останні пакети залежать від libc6 ≥ 2.17, який неможливо встановити на Ubuntu 12.04. Якщо ви все ще використовуєте Precision, вам слід розглянути можливість оновлення (як я), або якщо ви все ще не можете цього перейти, перейдіть на інший веб-переглядач (хоча в цей момент ви навряд чи знайдете будь-який, який все ще підтримується).


Редагувати (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. Він вказує на відповідність дистрибутиву набору стандартів, встановлених Linux Foundation. Випуски Chrome 50.X + вимагають дотримання стандартів, визначених у базі LSB 4.1, але Ubuntu 12.04 відповідає лише 4.0.

Як виявляється, обидва ці проблеми можна виправити досить легко:

libstdc ++ 6 (> = 4.8.0)

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

На щастя для нас, libstdc++64,8.X доступний в офіційному тесті ланцюжків інструментів Ubuntu, що створює PPA . В якості першого кроку ми додамо цей PPA до наших програмних джерел:

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

Якщо встановити Google Chrome з цього моменту, витягніть libstdc++6залежність від PPA, усунувши першу проблему залежності. З цим вирішеним перейдемо до другого питання.

lsb-база (> = 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-бази 4.1 та запропонує встановити оновлений .debфайл через dpkg.

Вітаємо, зараз ви використовуєте оновлений випуск Google Chrome на Ubuntu 12.04!

Оновлення

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

Майбутня сумісність

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

Для збереження останнього модифікованого інсталятора просто поверніться до тимчасового каталогу скрипта відразу після отримання sudoзапиту пароля під час запуску сценарію (тобто прямо перед встановленням зміненого .debфайлу). Тимчасовий каталог повинен розташовуватися десь під /tmp/deb.XXXXXXXXX(де XXXXXXXXXвипадковий рядок).


1
Через політику, яку застосовує моя компанія, я затримався з Ubuntu 12.04. Мені вдалося встановити хром у будь-якому випадку за допомогою вашого сценарію. Дуже дякую!
Євгенію Роска

4

Я не думаю, що ти можеш. Вони щойно модернізувались, і залежності не вдалося подолати 12.04 .

У мене були ті ж проблеми, що склалися, і вони зменшилися. Навантаження старих версій тут .

Очевидно, що це не чудова відповідь, я добре шукав час і не міг знайти спосіб без пониження.


1
Я збираюся з цим. Звичайно, це не найкращий шлях, але він працює для мене як тимчасове рішення, оскільки я не можу зараз перейти на більш пізні версії Ubuntu.
fmonegaglia

Посилання на mirror.pcbeta.com пішло 404.
AlexD

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

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, які недоступні в Precision:

>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.


1

Я не можу прямо коментувати відповідь на глутанімат, але хотів би поділитися цим. Мені потрібно було додати додатковий рядок до інсталяційного сценарію:

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

Здається, Chrome працює із цим нормально, але мені це не дозволить інсталювати його.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.