Исправление «Следующие пакеты были сохранены обратно» - без установки?

Я закончил с Gtk-Message: не удалось загрузить модуль "overlay-scrollbar" из-за необходимости 32-битного overlay-scrollbar-gtk2 в 64-битном amd64 Ubuntu - который лучше описано в Как установить 32-разрядные библиотеки, если они продолжают иметь неустановимые зависимости? ...

В принципе, если я sudo apt-get install overlay-scrollbar-gtk2:i386, он выйдет из строя 14.04, поскольку считается, что он зависит от overlay-scrollbar:i386, однако только 14.04 устанавливается overlay-scrollbar:all.

Итак, я мог бы попробовать apt-get download с dpkg --ignore-depends ..., как в Как мне установить 32-битные библиотеки, когда они продолжают иметь неустановимые зависимости? - но это не совсем работало. ..

Итак, я попытался следовать указаниям Как изменить зависимости и сделал что-то вроде этого:

sudo apt-get remove --purge overlay-scrollbar-gtk2:i386
apt-get download overlay-scrollbar-gtk2:i386
dpkg-deb -x overlay-scrollbar-gtk2_0.2.16+r359+14.04.20131129-0ubuntu1_i386.deb tmpdir-1404
dpkg-deb --control overlay-scrollbar-gtk2_0.2.16+r359+14.04.20131129-0ubuntu1_i386.deb tmpdir-1404/DEBIAN
nano tmpdir-1404/DEBIAN/control ## edit, see below
dpkg -b tmpdir-1404 overlay-scrollbar-gtk2_0.2.16+r359+14.04.20131129-0ubuntu1_hacked_i386.deb
# dpkg-deb: warning: 'tmpdir-1404/DEBIAN/control' contains user-defined field 'XB-Ignore'
# dpkg-deb: warning: ignoring 1 warning about the control file(s)

В редакторе nano я делаю так же, как в Игнорирование определенных неудовлетворенных зависимостей с помощью aptitude? - Я комментирую зависимость, используя тег XB *:

...
Depends: libc6 (>= 2.4), libcairo2 (>= 1.10.0), libglib2.0-0 (>= 2.37.3), libgt$
XB-Ignore: overlay-scrollbar, # hack: ignore this dependency for i386
...

И теперь установка взломанного .deb проходит без проблем:

$ sudo dpkg -i overlay-scrollbar-gtk2_0.2.16+r359+14.04.20131129-0ubuntu1_hacked_i386.deb
Selecting previously unselected package overlay-scrollbar-gtk2:i386.
(Reading database ... 227214 files and directories currently installed.)
Preparing to unpack overlay-scrollbar-gtk2_0.2.16+r359+14.04.20131129-0ubuntu1_hacked_i386.deb ...
Unpacking overlay-scrollbar-gtk2:i386 (0.2.16+r359+14.04.20131129-0ubuntu1) ...
Setting up overlay-scrollbar-gtk2:i386 (0.2.16+r359+14.04.20131129-0ubuntu1) ...
Processing triggers for libc-bin (2.19-0ubuntu6.7) ...

Выглядит хорошо (и на самом деле, кажется, хорошо - потому что когда я запускаю 32-битные программы, которые раньше жаловались на Gtk-Message: Failed to load module "overlay-scrollbar", они больше не жалуются) - но теперь, когда я делаю apt-get upgrade, я получаю сообщение «пакеты были сохранены»:

$ sudo apt-get update
$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
  overlay-scrollbar-gtk2:i386
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.

... но что еще более странно, когда я делаю apt-get dist-upgrade, там нет предупреждения вообще?!:

$ sudo apt-get dist-upgrade 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Эта страница apt-get dist-upgrade не исправляет «Следующие пакеты были сохранены» также отмечает:

Это означает, что они были задержаны по более сложной причине, чем новые зависимости или нуждающиеся в val других пакетов.

Итак, кто-нибудь знает - какова будет причина для "сдерживания" пакета в этом случае - и как избавиться от этого предупреждения при выполнении update? Ясно, что я не хочу делать apt-get install пакета здесь, так как он взломан, и я бы хотел установить его прямо из .deb - и apt-get не может установить файл .deb напрямую, только dpkg ] может сделать это ...


РЕДАКТИРОВАТЬ: как @ByteCommander предложил в комментариях, я попытался aptitude:

$ sudo aptitude upgrade 
Resolving dependencies...                
No packages will be installed, upgraded, or removed.
0 packages upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
Need to get 0 B of archives. After unpacking 0 B will be used.

Это мало что говорит - это более показательно:

$ sudo aptitude full-upgrade 
The following packages will be upgraded: 
  overlay-scrollbar-gtk2:i386{b} 
1 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 29.3 kB of archives. After unpacking 0 B will be used.
The following packages have unmet dependencies:
 overlay-scrollbar-gtk2:i386 : Depends: overlay-scrollbar:i386 which is a virtual package.
The following actions will resolve these dependencies:

     Remove the following packages:
1)     overlay-scrollbar-gtk2:i386 

Accept this solution? [Y/n/q/?] q
Abandoning all efforts to resolve these dependencies.
Abort.

Хм ... Я думал, что уже удалил зависимость от overlay-scrollbar:i386 ??!

Кроме того, здесь apt-cache policy согласно комментарию @ByteCommander:

$ apt-cache policy overlay-scrollbar:i386 overlay-scrollbar
overlay-scrollbar:i386:
  Installed: (none)
  Candidate: (none)
  Version table:
overlay-scrollbar:
  Installed: 0.2.16+r359+14.04.20131129-0ubuntu1
  Candidate: 0.2.16+r359+14.04.20131129-0ubuntu1
  Version table:
 *** 0.2.16+r359+14.04.20131129-0ubuntu1 0
        500 http://dk.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages
        100 /var/lib/dpkg/status

$ apt-cache policy overlay-scrollbar-gtk2:i386 overlay-scrollbar-gtk2
overlay-scrollbar-gtk2:i386:
  Installed: 0.2.16+r359+14.04.20131129-0ubuntu1
  Candidate: 0.2.16+r359+14.04.20131129-0ubuntu1
  Version table:
     0.2.16+r359+14.04.20131129-0ubuntu1 0
        500 http://dk.archive.ubuntu.com/ubuntu/ trusty/main i386 Packages
 *** 0.2.16+r359+14.04.20131129-0ubuntu1 0
        100 /var/lib/dpkg/status
overlay-scrollbar-gtk2:
  Installed: 0.2.16+r359+14.04.20131129-0ubuntu1
  Candidate: 0.2.16+r359+14.04.20131129-0ubuntu1
  Version table:
 *** 0.2.16+r359+14.04.20131129-0ubuntu1 0
        500 http://dk.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages
        100 /var/lib/dpkg/status

Хммм. ... может быть что-то с /var/lib/dpkg/status, но еще не уверен, что это ...

1
задан 13 April 2017 в 15:23

1 ответ

Хорошо, я думаю, что решил его - но я не уверен, насколько персистентный это будет...

В основном до сих пор я предположил, что единственное определение зависимостей для пакета - то, что отмечено в .deb файл, который, поскольку отмечает OP, был уже взломан с помощью a XB-Ignore: "комментарий" тега.

Однако это, оказывается, НЕ имеет место - существует на самом деле дополнительный файл, где зависимости определяются, которому подсказывают в выводе apt-cache policy overlay-scrollbar-gtk2:i386:

  Version table:
     0.2.16+r359+14.04.20131129-0ubuntu1 0
        500 http://dk.archive.ubuntu.com/ubuntu/ trusty/main i386 Packages
 *** 0.2.16+r359+14.04.20131129-0ubuntu1 0
        100 /var/lib/dpkg/status

Так, одно определение находится в /var/lib/dpkg/status - который в основном наследовался XB-Ignore: тег от взломанного .deb когда пакет установлен.

Но затем, нам говорят, что, кажется, существует другая спецификация в http://dk.archive.ubuntu.com/ubuntu/ trusty/main i386 Packages - однако, ясно, это не имя файла, но a deb спецификация, как используется в /etc/apt/sources.list. Так, где файл связан с этим? Оказывается, это находится в (в моем случае):

/var/lib/apt/lists/dk.archive.ubuntu.com_ubuntu_dists_trusty_main_binary-i386_Packages

Так, я понял, что в этом файле, у меня есть "оригинальная", исходная спецификация:

Package: overlay-scrollbar-gtk2
Priority: optional
Section: libs
Installed-Size: 118
Maintainer: Ubuntu Desktop Team <ubuntu-desktop@lists.ubuntu.com>
Architecture: i386
Source: overlay-scrollbar
Version: 0.2.16+r359+14.04.20131129-0ubuntu1
Replaces: liboverlay-scrollbar-0.2-0 (<< 0.2.16+r348), liboverlay-scrollbar-0.2-dev (<< 0.2.16+r348)
Depends: overlay-scrollbar, libc6 (>= 2.4), libcairo2 (>= 1.10.0), libglib2.0-0 (>= 2.37.3), libgtk2.0-0 (>= 2.24.6-0ubuntu4)
Conflicts: liboverlay-scrollbar-0.2-0 (<< 0.2.16+r348), liboverlay-scrollbar-0.2-dev (<< 0.2.16+r348)
Filename: pool/main/o/overlay-scrollbar/overlay-scrollbar-gtk2_0.2.16+r359+14.04.20131129-0ubuntu1_i386.deb
Size: 29286
MD5sum: 261bcaed3e0a73ebab73c25514dfdab5
SHA1: eec7a0e958ce41a441883ce305de2fc8ff4e8aac
SHA256: 4f18ad70e6ce0fbb59e79d2ca8fc43ffafd13011dc3db0dcd65bffeddf23379b
Description: GTK 2 module for overlay scrollbars
Multi-Arch: same
Homepage: http://launchpad.net/ayatana-scrollbar
Description-md5: 1d3f21e2d8af7452b22c5b3bf608dfba
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Origin: Ubuntu
Supported: 5y
Task: ubuntu-desktop, ubuntu-usb, edubuntu-desktop, edubuntu-usb

А-ч, существует старое то же Depends: снова - таким образом, я просто пытаюсь заменить, Зависит строка в это:

Depends: libc6 (>= 2.4), libcairo2 (>= 1.10.0), libglib2.0-0 (>= 2.37.3), libgtk2.0-0 (>= 2.24.6-0ubuntu4)
XB-Ignore: overlay-scrollbar, # hack: ignore this dependency for i386

... и поэтому теперь, и этот файл, и /var/lib/dpkg/status покажите ту же зависимость - и теперь когда я сделаю upgrade:

$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

... У меня больше нет проблем... Надежда, которая была этим.

0
ответ дан 14 April 2017 в 01:23
  • 1
    На самом деле Windows 7 может начальная загрузка в режиме EFI (но выполнение так на Mac очень трудно, и вероятно перестать работать на большинстве моделей), и Windows 8 и позже может начальная загрузка в режиме BIOS. Смешивание и соответствие BIOS/CSM/legacy-mode и начальная загрузка EFI/UEFI-mode возможны, но it' s сложное минное поле, особенно при контакте с загрузочной Картой памяти that' s, чтобы использоваться и на PCs и на Macs. – Rod Smith 24 June 2017 в 02:17

Другие вопросы по тегам:

Похожие вопросы: