我有一个 Dockerfile,它尝试在 Ubuntu(我认为是 v16 Xenial)中的其他软件包中安装软件包
google-chrome-stable
,作为 Gitlab 管道步骤的一部分。直到最近,当该步骤开始因这个问题而失败时,我才遇到任何问题:
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
google-chrome-stable : Depends: libu2f-udev but it is not installable
E: Unable to correct problems, you have held broken packages.
看起来
libu2f-udev
最近变成了 depends
而不是 recommends
– 但我不知道如何解决这个问题。这是有问题的 Dockerfile 部分:
FROM -.dkr.ecr.us-east-1.amazonaws.com/ubuntu:xenial
EXPOSE 9222
# Install ubuntu dependencies
RUN apt-get update && \
apt-get -y upgrade && \
apt-get install -yq curl libgconf-2-4
# Install Google Chrome Stable
RUN curl https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - && \
apt-get install -y wget gnupg && \
echo 'deb [arch=amd64] http://dl.google.com/linux/chrome/deb stable main' >> /etc/apt/sources.list.d/google-chrome.list && \
apt-get update && \
apt-get install -y --no-install-recommends \
google-chrome-stable \
fonts-ipafont-gothic \
fonts-wqy-zenhei \
fonts-thai-tlwg \
fonts-kacst ttf-freefont && \
rm -fr /var/lib/apt/lists/* && \
apt-get purge --auto-remove -y curl && \
rm -fr /src/*.deb
我认为安装前的
apt-get update
可以解决这个问题,但事实并非如此。感谢任何帮助,谢谢!
编辑:另外,我知道 Ubuntu 16 不再接受标准支持(这是我正在使用的一项相当旧的服务)。如果升级到 v18 或更高版本会有帮助,那也很高兴知道
wget http://archive.ubuntu.com/ubuntu/pool/main/libu/libu2f-host/libu2f-udev_1.1.4-1_all.deb
dpkg -i libu2f-udev_1.1.4-1_all.deb
然后重试更新 chrome
创建一个提供 libu2f-udev 的虚拟包可以修复该问题。我按照 Ubuntu 16.04 的以下步骤操作。安装equivs包
sudo apt install equivs
equivs-control libu2f-udev
这将创建一个文件 libu2f-udev。编辑此文件并将 libu2f-udev 作为“Package”和“Provides”键的值。然后执行
equivs-build libu2f-udev
这将创建虚拟包 libu2f-udev_1.0_all.deb。安装方式:
sudo dpkg -i libu2f-udev_1.0_all.deb
一切就绪。
libu2f-udev文件的内容应该是这样的
在 16.04.7 LTS 和 chrome 110.0.5481.100 上测试。如果不清楚的话,编辑后的libu2f-udev文件应该是这样的:
### Commented entries have reasonable defaults.
### Uncomment to edit them.
# Source: <source package name; defaults to package name>
Section: misc
Priority: optional
# Homepage: <enter URL here; no default>
Standards-Version: 3.9.2
Package: libu2f-udev
# Version: <enter version here; defaults to 1.0>
# Maintainer: Your Name <[email protected]>
# Pre-Depends: <comma-separated list of packages>
# Depends: <comma-separated list of packages>
# Recommends: <comma-separated list of packages>
# Suggests: <comma-separated list of packages>
Provides: libu2f-udev
# Replaces: <comma-separated list of packages>
# Architecture: all
# Multi-Arch: <one of: foreign|same|allowed>
# Copyright: <copyright file; defaults to GPL2>
# Changelog: <changelog file; defaults to a generic changelog>
# Readme: <README.Debian file; defaults to a generic one>
# Extra-Files: <comma-separated list of additional files>
# Files: <pair of space-separated paths;>
# <more pairs, if there's more than one file to include.>
Description: <short description; defaults to some wise words>
long description and info
.
second paragraph
尝试使用 GDebi 软件包安装程序安装 google-chrome-stable 时出现“错误:无法满足依赖关系:libglib2.0-0 (>= 2.39.4)”。我已经从Chrome官方网站下载了.deb,Ubuntu版本。
我有 Ubuntu 24.04,但无法安装 Chrome 或 Edge。 我已经尝试了所有我能找到的方法,使用命令,使用图形应用程序,我不知道如何让 Firefox 以外的浏览器安装在这个新版本的 Ubuntu 上。我之前有 Ubuntu 22.04,一切都运行得很好。
我已经尝试过使用 flatpak 和 snap。似乎没什么作用。
我还遵循了该线程中建议的步骤。 1)equivs-控制libu2f-udev 2)编辑文件 3)equivs-build libu2f-udev
复制结果:
dpkg-buildpackage:信息:libu2f-udev 源码包 dpkg-buildpackage:信息:源版本1.0 dpkg-buildpackage:信息:源代码分发不稳定 dpkg-buildpackage:信息:由 Equivs 虚拟包生成器 mxme@mxmehost 修改的源 dpkg-buildpackage:信息:amd64 系统架构 dpkg-source --before-build 。 debian/rules clean dh clean dh_clean debian/rules 二进制 dh 二进制 dh_update_autotools_config dh_autoreconf create-stamp debian/debhelper-build-stamp dh_prep dh_auto_install --destdir=debian/libu2f-udev/ dh_install dh_installdocs dh_installchangelogs dh_perl dh_link dh_strip_nondecemism dh_ compress dh_修复权限 dh_missing dh_installdeb dh_gencontrol dh_md5sums dh_builddeb dpkg-deb:构建包
libu2f-udev' in
../libu2f-udev_1.0_all.deb'。
dpkg-genbuildinfo --build=binary -O../libu2f-udev_1.0_amd64.buildinfo dpkg-genchanges --build=binary -O../libu2f-udev_1.0_amd64.changes dpkg-genchanges: 信息: 仅二进制上传(不包括源代码) dpkg-source --after-build 。
dpkg-buildpackage: 信息: 仅二进制上传(不包含源) 包已创建。
注意,包是在当前目录中创建的,而不是上面消息所示的“..”中!
mxme@mxmehost:~$ sudo dpkg -i libu2f-udev_1.0_all.deb
dpkg:警告:将 libu2f-udev 从 1.1.10-3build3 降级到 1.0
(正在读取数据库...当前安装的 650805 个文件或目录。)
准备解压 libu2f-udev_1.0_all.deb ...
将 libu2f-udev (1.0) 解压到 (1.1.10-3build3) ...
配置 libu2f-udev (1.0) ...
如果有人能给我关于如何修复 Ubuntu 22.04 上的 Chrome 安装的提示,非常感谢。
使用下一个命令卸载 google-chrome: sudo apt remove google-chrome-stable 并更正库中的错误,然后安装您需要的软件包。
以下软件包具有未满足的依赖关系: google-chrome-stable :取决于:libu2f-udev 但未安装 E:未满足的依赖关系。尝试不使用任何软件包的“apt --fix-broken install”(或指定解决方案)。