libnss3 更新降级问题

libnss3 更新降级问题

我已经降级了libnss3Ubuntu,以便可以安装 Upwork 软件。我已经成功安装了这个软件。但降级后,我无法在系统上安装任何其他软件。

我收到以下错误:

Check if you are using third party repositories. If so disable them, since they are a common source of problems.
Furthermore run the following command in a Terminal: apt-get install -f            The following packages have unmet dependencies: 

 aptitude: Depends: libapt-pkg4.12 (>= 0.8.16~exp12ubuntu6) but 1.0.1ubuntu2.11 is installed

Depends: libboost-iostreams1.46.1 (>= 1.46.1-1) but it is not installed

      Depends: libc6 (>= 2.4) but 2.19-0ubuntu6.7 is installed
      Depends: libcwidget3 but it is not installed
      Depends: libept1.4.12 but it is not installed
      Depends: libgcc1 (>= 1:4.1.1) but 1:4.9.3-0ubuntu4 is installed
      Depends: libncursesw5 (>= 5.6+20070908) but 5.9+20140118-1ubuntu1 is installed
      Depends: libsigc++-2.0-0c2a (>= 2.0.2) but 2.2.10-0.2ubuntu2 is                installed
      Depends: libsqlite3-0 (>= 3.6.5) but 3.8.2-1ubuntu2.1 is installed
      Depends: libstdc++6 (>= 4.6) but 4.8.4-2ubuntu1~14.04.1 is installed
libnss3-nssdb: Depends: libnss3 (= 2:3.21-0ubuntu0.14.04.2) but 2:3.19.2-1ubuntu1 is installed

答案1

笔记:这是对任何需要早期、被取代或以其他方式古怪的库的应用程序的一般建议。 libnss3 库和 upwork 应用程序都是很好的例子。

1.修复你的系统

好的,首先,撤销你所做的事情。如果您使用过任何 apt-pin,请删除它们(对于 libnss3),然后执行以下操作:

apt-get install libnss3
aptitude update; aptitude safe-upgrade

然后检查您是否安装了最新版本:

apt-cache policy libnss3

或者

dpkg-query -l libnss3

好的,您的系统已恢复正常工作。

2. 做好工作

接下来,让 upwork 应用程序运行起来。首先,单独下载 libnss3 的早期版本,并将其放在另一个目录中。我使用的是 debian,所以我从以下位置获得了稳定包https://packages.debian.org/jessie/libnss3。此类库的位置位于 /usr/local/lib/someDir/ 中。一旦 libnss3_3.17.2-1.1+deb8u2_i386.deb (比如说)文件位于此目录或临时目录中,请从中提取其内容:

dpkg-deb -x libnss3_3.17.2-1.1+deb8u2_i386.deb

并将 libnss3 库移至 /usr/local/lib/someDir/

mv <extractDir>/usr/lib/i386-linux-gnu/nss/*    /usr/local/lib/someDir/

这可能是

mv /usr/local/lib/someDir/usr/lib/i386-linux-gnu/nss/*   /usr/local/lib/someDir/

现在,您已将降级的库放在单独的目录中。现在您只需让 upwork 应用程序使用这些库即可。

export LD_LIBRARY_NAME=/usr/local/lib/someDir:$LD_LIBRARY_NAME
upwork

更好的解决方案是制作一个名为 /usr/local/bin/upwork (是的,完全相同的名称)的简短脚本,然后确保(是的,确保) /usr/local/bin/ 在您的 $PATH 中/usr/bin。这个简短的脚本将包括

export LD_LIBRARY_PATH=/usr/local/lib/someDir:$LD_LIBRARY_PATH
/usr/bin/upwork 2 >& 1  &

使脚本可执行

chmod 755 /usr/local/bin/upwork

您的 upwork 应用程序现在将使用这些降级的 libnss3 库。

答案2

好吧,经过大量搜索后我已经解决了。在 dpkg 文件夹中,我有一个名为 lock.txt 的文件。我已经更改了文件和 dpkg 文件夹的权限。然后我跑

apt-get install -f

现在我将能够安装任何软件。

相关内容