oracle-java8-installer приводит к удалению «apt»? [закрыто]

14

С первого альфа-релиза я работаю надёжно, ежедневно получая обновления. Я также установил oracle-java7-installer из PPA-файла WebUpd8. Сегодня я заметил во время dist-upgrade, что oracle-java7-installer удалялся. В моей пограничной системе я просто разрешил все значения по умолчанию, поэтому разрешил удаление, ожидая попробовать версию Java 8 в любом случае. Однако когда я пошел устанавливать пакет oracle-java8-installer, он захотел удалить «apt» !? Это, очевидно, вызвало мое беспокойство, так как это даже похоже на проблему безопасности. Помощь в понимании этого будет принята с благодарностью.

$ sudo apt-get install oracle-java8-installer
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Suggested packages:
  visualvm ttf-baekmuk ttf-unfonts ttf-unfonts-core ttf-kochi-gothic ttf-sazanami-gothic ttf-kochi-mincho ttf-sazanami-mincho
  ttf-arphic-uming
The following packages will be REMOVED:
  apt apturl nautilus-share python3-software-properties software-center software-properties-common software-properties-gtk
  ubuntu-extras-keyring ubuntu-minimal unattended-upgrades
The following NEW packages will be installed:
  oracle-java8-installer
WARNING: The following essential packages will be removed.
This should NOT be done unless you know exactly what you are doing!
  apt
0 upgraded, 1 newly installed, 10 to remove and 0 not upgraded.
Need to get 18.7 kB of archives.
After this operation, 7,838 kB disk space will be freed.
You are about to do something potentially harmful.
To continue type in the phrase 'Yes, do as I say!'
 ?] 
Ланс Караччиоли
источник
1
@AvinashRaj: Я думаю, он это знает. :) @Lance: Я подозреваю, apt-get dist-upgradeчто эта проблема была вызвана тем , что в пакете установщика очень мало зависимостей и один конфликт, и oracle-java7-installerего не следовало удалять.
saiarcot895
1
Попробуйте сохранить все важные пакеты, показанные выше, а затем попробуйте установить oracle-java8-installerпакет.
Авинаш Радж
1
@AvinashRaj:j2se-common
saiarcot895
1
Это не должно произойти, пожалуйста, сообщите об ошибке.
Брайам
1
Модератор. Эта проблема относится к теме и напрямую связана с Ubuntu. Также об ошибке было сообщено почти сразу после того, как я задал вопрос. Я активный участник сообществ Ubuntu и StackExchange. Я задал этот вопрос, желая узнать от моих коллег о аспектах развития Ubuntu. Я утверждаю, что сама природа этого вопроса является причиной существования этого сайта. Я изучил правила справочного центра, и этот вопрос находится в рамках рекомендаций. По моему мнению, постановка подобных вопросов на удержание активно препятствует участию в сообществе. Пожалуйста, пересмотрите.
Ланс Караччоли

Ответы:

8

Это недавнее изменение, упомянутое в пакете 'apt' ChangeLog, кажется вероятным виновником:

apt (0.9.15.4ubuntu4) trusty; urgency=low

  Cherry pick fixes from the apt 1.0 branch:

  [ Michael Vogt ]
  * add sun-java{5,6}-jdk to breaks/replaces as that provided a "apt"
    binary as well

Пакет oracle-java8-installer «предоставляет» пакет «sun-java6-jdk», поэтому этот конфликт обостряется и не позволяет нам устанавливать пакеты WebUpd8 - хотя на самом деле ни oracle-java7-installer, ни oracle-java8-installer на самом деле устанавливает проблемный двоичный файл «apt», упомянутый в журнале изменений apt.

Я отправил отчет об ошибке для этого: https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1302736

Энди С
источник
7

У Энди С. здесь есть основная проблема, и я скоро ожидаю ее решения. Пожалуйста, используйте предоставленную им ссылку на сообщение об ошибке и укажите, что она также влияет на вас, чтобы получить более высокий приоритет.

Если вы абсолютно не можете ждать, вот временный обходной путь, чтобы игнорировать проблемы с зависимостями и форсировать установку:

  • Загрузите пакет .deb с apt sudo apt-get download oracle-java7-installer

  • Выполните установку .deb, который вы только что загрузили, игнорируя любые зависимости, на которые жалуются: sudo dpkg -i --ignore-depends=apt file-you-just-downloaded.deb

Два примечания:

  1. Вы можете использовать это аналогично для Java 8, изменив соответствующие команды выше.
  2. По крайней мере, в настоящее время ваш apt будет думать, что у него нарушена зависимость, и запросит удаление oracle-java7-installer. Вы можете вернуться обратно с помощью apt-get -f install.
AvatarKava
источник
1

Еще один обходной путь, пока это не будет исправлено, - это изменить файл deb из webupd8 и удалить его sun-java6-jdkиз Providesстроки в файле управления deb. В этом ответе есть удобный скрипт на superuser.com. Просто возьмите оригинальный файл , запустите на нем скрипт, измените Providesстроку и установите измененный файл с помощью sudo dpkg -i.

Я загрузил измененный пакет , но я настоятельно рекомендую использовать исходный файл и внести изменения самостоятельно, так как вы не должны устанавливать что-либо случайно в Интернете;)

Бенджамин Вольвенд
источник