"Google-chrome-stable depende de libstdc ++ 6 (> = 4.8.0); sin embargo: la versión de libstdc ++ 6 en el sistema es 4.6.3-1ubuntu5 ".

10

Estoy tratando de instalar google-chrome-stableen una nueva instalación de ubuntu 12.04. Ejecuto los siguientes comandos

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

Me salen los siguientes errores

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

Cuando ejecuto sudo apt-get install -fsolo elimino google-chrome-stable:

The following packages will be REMOVED
  google-chrome-stable

Si busco las versiones requeridas, por ejemplo, intento sudo apt-get install libstdc++6=4.8.0no puedo encontrar la versión:

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

¿Cómo arreglo eso?

Sé que ya no hay soporte para la versión de 32 bits de Ubuntu 12.04. Estoy ejecutando la versión de Ubuntu de 64 bits.

fmonegaglia
fuente
@glut el título real es exacto. Dice el mensaje de error exacto.
Braiam
@Braiam, diría que es solo parcialmente preciso porque no incluye el error
lsb_base
@Glutanimate pero lsb-base no tiene una biblioteca / binario que Chrome usa.
Braiam
@Braiam Ok, cierto. Ahora que lo pienso, la mayoría de los usuarios buscarán la primera parte del mensaje de error de todos modos, así que sigamos con eso.
Glutanimate

Respuestas:

14

Está recibiendo estos errores porque Google ha finalizado el soporte para Ubuntu 12.04.

Google: Finalizaremos el soporte para Google Chrome en Linux de 32 bits, Ubuntu Precise (12.04).

Alternativamente, puede instalar el chromium-browseren el que se basa Google Chrome.

También puede instalar Ubuntu 14.04 LTS o Ubuntu 15.10, ambos son compatibles, para usar Chrome.

Pero le sugiero que espere hasta el 21 de abril, cuando se lanzará el nuevo Ubuntu 16.04 LTS.

Debería considerar que Ubuntu 12.04 LTS solo tiene un año de soporte de seguridad oficial.

cl-netbox
fuente
Tengo la versión de Ubuntu de 64 bits. Acabo de reinstalar el sistema operativo, tenía Chrome trabajando en la misma configuración exacta hasta hace una semana. Lo malo es que no dije eso, lo siento
fmonegaglia
55
@fmonegaglia: Lo más importante aquí es que Ubuntu 12.04 generalmente ya no es compatible, independientemente de si la edición de Ubuntu de 32 o 64 bits está en uso. Google Chrome solo se puede instalar en ediciones de Ubuntu de 64 bits compatibles, a partir de Ubuntu 14.04 ... :)
cl-netbox
Esta es definitivamente la respuesta correcta. Desafortunadamente, algunos de nosotros estamos atrapados con 12.04 por cualquier razón. Se debe dedicar el esfuerzo a bajar 12.04 en lugar de soluciones temporales como la degradación (abajo) Sin embargo, a veces solo necesitas que las cosas funcionen.
lathonez
6

Última edición (2017-09-13) :

Esta solución ya no funciona para las versiones 60 y posteriores de Chrome . Los últimos paquetes dependen de libc6 ≥ 2.17 que no se puede instalar en Ubuntu 12.04. Si todavía usa Precise, debería considerar la actualización (como lo hice yo), o si aún no puede hacerlo, cambie a otro navegador (aunque en este momento es poco probable que encuentre alguno que aún se mantenga).


Editar (2016-12-06) : Parece que Chrome también depende de una versión actualizada de libfontconfig1 ahora (≥ 2.9.0). He actualizado el script en consecuencia. La nueva versión parece estar funcionando bien hasta ahora, pero tenga en cuenta que con cada dependencia fingida puede esperar que la aplicación se vuelva menos estable.

Editar (2017-06-10) : Chrome 59 viene con nuevas dependencias (libfontconfig1 ≥ 2.11, libpango y libpangocairo). He actualizado el script para eliminarlos. La misma advertencia sobre la estabilidad de Chrome se aplica nuevamente.


Solución alternativa para problemas de dependencia en Ubuntu 12.04 64bit

El soporte oficial de Chrome para Ubuntu versión 12.04 ha finalizado, pero esto no significa que deba abandonar Chrome todavía. Lo que sigue es un tutorial rápido sobre cómo instalar la última versión de Chrome (a partir del 2016-06-28) en Ubuntu 12.04 de 64 bits.

Advertencia : esta es una solución muy agresiva que podría dejar de funcionar en cualquier momento. Asegúrese de saber lo que está haciendo antes de continuar.

Prerrequisitos

Kernel actualizado

Importante: Tenga en cuenta que la actualización de su núcleo puede venir con su propio conjunto de problemas y problemas de compatibilidad de hardware. Asegúrese de saber cómo cambiar a un kernel anterior antes de continuar con este paso.

Las versiones recientes de Chrome dependen de una serie de características del kernel relacionadas con el sandboxing que no están disponibles en el kernel predeterminado de Ubuntu 12.04 (3.2.0). Si ha instalado Ubuntu 12.04 usando una imagen más reciente (versión de lanzamiento 12.04.2 y superior), es probable que ya tenga un kernel actualizado; pero si todavía está en la versión original del núcleo, puede actualizar a la pila del núcleo de Ubuntu 14.04 a través del paquete de la pila de habilitación de hardware LTS :

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

Asegúrese de reiniciar su sistema después de realizar la actualización del kernel. Si todo salió bien, su sistema debería estar usando el kernel 3.13.X. de Linux.

Problemas de dependencia

Si observa el mensaje de error que recibe cuando intenta instalar una compilación reciente de Chrome, verá dos problemas de dependencia distintos:

  1. libstdc++6 (>= 4.8.0): Esta es la biblioteca C ++ estándar de GNU. Chrome lanza 50.X y hasta depende de la versión 4.8.0 de esta biblioteca, pero Ubuntu 12.04 solo viene con 4.6.3 por defecto.
  2. lsb-base (>= 4.1): Este es el paquete básico estándar de Linux. Indica el cumplimiento de la distribución con un conjunto de estándares establecidos por la Fundación Linux. Las versiones de Chrome 50.X + requieren el cumplimiento de los estándares definidos en LSB base 4.1, pero Ubuntu 12.04 solo cumple con 4.0.

Resulta que ambos problemas se pueden solucionar con bastante facilidad:

libstdc ++ 6 (> = 4.8.0)

Importante: libstdc ++ 6 es una biblioteca de sistema importante de la que dependen muchos paquetes diferentes. Actualizar este paquete a una versión más reciente puede ser peligroso y puede provocar problemas de estabilidad del sistema. No he tenido ningún problema en los dos sistemas en los que realicé esta actualización, pero, como siempre, su kilometraje puede variar.

Afortunadamente para nosotros, libstdc++64.8.X está disponible en la versión oficial de Ubuntu Toolchain Test Builds PPA . Como primer paso, agregaremos este PPA a nuestras fuentes de software:

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

Instalar Google Chrome a partir de este momento libstdc++6eliminará la dependencia del PPA, eliminando el primer problema de dependencia. Con esto resuelto, procedamos al segundo problema.

lsb-base (> = 4.1)

Resulta que en realidad no necesitamos instalar una versión actualizada de este paquete para ejecutar las versiones recientes de Chrome. Por ahora, Chrome no parece depender realmente de ninguno de los estándares modificados en LSB base 4.1, por lo que la dependencia de lsb-base (>= 4.1)parece ser una dependencia blanda que simplemente podemos eliminar.

Podría hacerlo manualmente, por supuesto, pero he escrito un script que se encarga de la mayoría de los siguientes pasos.

Script de instalación

#!/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"

Copie el script anterior, guárdelo como install_chrome.shy márquelo como ejecutable (ya sea a través chmod +x install_chrome.shdel cuadro de diálogo de propiedades del administrador de archivos).

Una vez hecho esto, puede ejecutar el script usando:

./install_chrome.sh

El script procederá a descargar la última versión estable de Chrome, modificarla para eliminar la dependencia de lsb-base 4.1 y solicitarle que instale el .debarchivo actualizado a través de dpkg.

¡Felicitaciones, ahora está utilizando una versión actualizada de Google Chrome en Ubuntu 12.04!

Actualizaciones

Para actualizar Chrome, simplemente ejecute el script nuevamente.

Compatibilidad futura

Importante: debido a que esta solución puede dejar de funcionar en cualquier momento, le aconsejo que siempre guarde el último .debarchivo modificado que funcione como copia de seguridad en caso de que Chrome se niegue repentinamente a iniciarse debido a una actualización.

Para guardar el último instalador modificado, simplemente diríjase al directorio temporal de la secuencia de comandos justo después de recibir la sudosolicitud de contraseña cuando ejecute la secuencia de comandos (es decir, justo antes de instalar el .debarchivo modificado ). El directorio temporal debe ubicarse en algún lugar debajo /tmp/deb.XXXXXXXXX(donde XXXXXXXXXhay una cadena aleatoria).

Glutanimato
fuente
1
Debido a las políticas aplicadas por mi empresa, estoy atascado con Ubuntu 12.04. Pude instalar Chrome de todos modos usando su script. ¡Muchas gracias!
Eugeniu Rosca
4

No creo que puedas. Se acaban de actualizar y las dependencias no se pueden cumplir en 12.04 .

He tenido el mismo problema en una compilación de travis y he degradado. Un montón de versiones antiguas aquí .

Obviamente no es una gran respuesta, busqué un buen rato y no pude encontrar una manera sin degradar.

lathonez
fuente
1
Voy con este. Por supuesto, no es la mejor manera de hacerlo, pero funciona para mí como una solución temporal, ya que no puedo actualizar a versiones posteriores de Ubuntu por ahora.
fmonegaglia
El enlace a mirror.pcbeta.com desapareció 404.
AlexD
2

Como Google ha dejado de admitir Chrome y 12.04, su mejor solución es instalar Chromium en su lugar:

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

Básicamente, Google Chrome solicita lsb-base y libstdc ++ 6 que no están disponibles en 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

Necesitaría Trusty (que también es LTS) o posterior para instalar google-chrome desde Google, o simplemente instalar el proporcionado por los repositorios de Ubuntu chromium-browser.

Braiam
fuente
1

No puedo comentar directamente sobre la respuesta de Glutanimate, pero me gustaría compartirla de todos modos. Necesitaba agregar una línea adicional al script de instalación:

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

Chrome parece funcionar bien con esto, pero de lo contrario no me permitiría instalarlo.

Fabian Dellwing
fuente