我一直在尝试按照这个小步骤安装 openvpn 的稳定版/xenial 版指导在我的 Ubuntu 16.10 上。但是,每次运行“sudo apt-get install openvpn”时,我都会收到此错误:
以下软件包具有未满足的依赖关系:
openvpn:依赖:initscripts(>= 2.88dsf-13.3)
E:无法纠正问题,您持有破损的包裹。
而且由于我完全不知道如何解决这个问题,所以我非常感谢您的帮助。
答案1
请注意,您使用的是 Ubuntu 16.10,即 Yakkety。OpenVPN 存储库仅支持最高 16.04、Xenial。如果您执行命令apt-get install initscripts
,结果会提供一些帮助:
However the following packages replace it:
util-linux:i386 util-linux sysvinit-utils:i386 sysvinit-utils
这里的问题是 openvpn 包不知道它的依赖关系在 Yakkety 中没有任何意义。所以现在,要么
- 从源代码编译以获取最新版本的 OpenVPN,
- 等到他们更新他们的仓库,或者
- 安装 Yakkety 存储库中提供的旧版 OpenVPN。
先进的
如果您想修改 Yakkety 的软件包,您可以尝试以下操作。我不能保证这对您来说会很好并且不会造成问题。我得到了以下帮助这里。
我认为这种安装方法的一个问题是,使用此方法安装 OpenVPN 后,GUI 网络管理器无法添加 VPN 连接。命令行 VPN 连接工作正常。坚持使用 Ubuntu 打包版本,以获得最简便的 VPN 连接。
获取 deb 文件,解压内容并控制:
mkdir /tmp/debwork
cd /tmp/debwork
apt-get download openvpn
dpkg-deb -x openvpn_2.4.0-xenial0_amd64.deb openvpn
dpkg-deb --control openvpn_2.4.0-xenial0_amd64.deb openvpn/DEBIAN
现在,编辑控制文件:
nano DEBIAN/control
改变:
Version: 2.4.0-xenial0
到
Version: 2.4.0-yakkety0
并改变:
Depends: debconf (>= 0.5) | debconf-2.0, libc6 (>= 2.15), liblzo2-2, libpam0g (>= 0.99.7.1), libpkcs11-helper1 (>= 1.11), libssl1.0.0 (>= 1.0.2~beta3), libsystemd0, init-system-helpers (>= 1.18~), initscripts (>= 2.88dsf-13.3), iproute2
到:
Depends: debconf (>= 0.5) | debconf-2.0, libc6 (>= 2.15), liblzo2-2, libpam0g (>= 0.99.7.1), libpkcs11-helper1 (>= 1.11), libssl1.0.0 (>= 1.0.2~beta3), libsystemd0, init-system-helpers (>= 1.18~), sysvinit-utils (>= 2.88dsf-13.3), util-linux, iproute2
现在构建新的包:
dpkg -b openvpn openvpn_2.4.0-yakkety0_amd64.deb
并安装:
sudo dpkg -i openvpn_2.4.0-yakkety0_amd64.deb
答案2
该openvpn
软件包告诉打包系统openvpn
需要 版本2.88dsf-13.3
或更高版本的initscripts
软件包。打包系统认为此条件不满足,因此拒绝安装openvpn
。
我很确定这initscripts
是 Ubuntu 的一部分。在我的 Ubuntu 16.04.1 LTS 上,
$ dpkg -l initscripts
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-======================================-========================-========================-=================================================================================
ii initscripts 2.88dsf-59.3ubuntu2 amd64 scripts for initializing and shutting down the system
我拥有的版本2.88dsf-59.3ubuntu2
比所需版本更新得多2.88dsf-13.3
,请记住,您没有。
关于您的系统或环境,还有什么您没有提到的吗?
sudo apt-get --dry-run install initscripts
让您测试我针对此单个问题建议的修复方法。我怀疑您使用 sudo 棒搅乱了您的系统。