Может ли установка пакета .deb, который не является частью официального репозитория, привести к проблемам с зависимостями пакетов?

Насколько я понимаю,

  1. Если мы устанавливаем пакет только из официального репозитория ( sudo apt install package-name , установка из программного центра, sudo apt install ./official-deb), все зависимости пакетов будут правильно обрабатываться apt , и проблем с зависимостями не будет
  2. Установка с использованием PPA и сборка из исходного кода может привести к проблеме зависимости во время самой установки или в будущем.

Как насчет того, чтобы я установил пакет .deb, который не является частью официального репозитория (например, Пакет Chrome .deb), выполнив sudo apt install ./chrome.deb. Может ли это привести к проблеме зависимости во время самой установки и / или будущего обновления с sudo apt update && ..... ? Если да, то можно ли настроить его так, чтобы зависимости обрабатывались apt ?

P.S. Извините, если это основной вопрос.

2
задан 17 October 2020 в 21:58

2 ответа

Короче да. Практически каждый метод установки в Linux (за исключением, может быть, appimages и snap) обязательно будет иметь проблемы с зависимостями. Однако смысл использования apt для установки файлов .deb в том, что он все еще может находить зависимости. У вас все еще могут быть проблемы с зависимостями с файлами .deb и apt, но они не так распространены, как их установка с помощью dpkg -i , как сказано в вашем исходном сообщении (что почти гарантированно будет иметь проблемы с зависимостями). На мой взгляд, лучше всего просто установить его с умом и надеждой. :) apt обычно разбирается в этом за вас, особенно с таким популярным пакетом, как Google Chrome, который предназначен для простой установки. Кроме того, чтобы уточнить, вы используете apt для установки из PPA сразу после того, как добавили их в свои списки источников. Так что, хотя вы можете столкнуться с проблемами зависимости с .deb (s), вы можете так же легко сделать это с помощью apt install , даже из официальных репозиториев.

UPDATE

В комментарии вы заявил, что вас больше беспокоят проблемы с зависимостями, вызванные обновлениями из-за различий в версиях библиотек. Я переместил свой ответ в комментарии сюда, а также добавил кое-что:

Это может произойти, но опять же, вероятность того, что это произойдет с .debs, не намного больше, чем с официальными репозиториями. Если пакеты указаны как конфликтующие друг с другом, apt выдаст ошибку независимо от источника файлов. Пакеты также могут перечислять ряд версий зависимостей, с которыми они работают. Их можно просмотреть в apt или в Интернете по адресу http://packages.ubuntu.com . Я не могу придумать ни одного с верхним диапазоном, но вы можете увидеть это в таком пакете, как https://packages.ubuntu.com/focal/htop , в котором есть несколько зависимостей, перечисленных с минимальными версиями. Кроме того, некоторые библиотеки интегрируются в код во время компиляции и поэтому не используются пакетами совместно. И многие библиотеки имеют защиту от этого: обратная и прямая совместимость.

2
ответ дан 4 January 2021 в 08:19

Да и Нет.

Это будет зависеть от того, что находится внутри пакета, и от того, какие зависимости он имеет и требует. Есть много пакетов, которые НЕ влияют ни на что другое, но большинство из них окажут влияние. Это будет зависеть от пакета.

В вашем примере google-chrome-stable в моей системе он сообщает

guiverc@d960-ubu2:/de2900/lubuntu_64$   apt-cache depends google-chrome-stable
google-chrome-stable
  PreDepends: dpkg
    dpkg:i386
  Depends: ca-certificates
  Depends: fonts-liberation
  Depends: libasound2
  Depends: libatk-bridge2.0-0
  Depends: libatk1.0-0
  Depends: libatspi2.0-0
  Depends: libc6
  Depends: libcairo2
  Depends: libcups2
  Depends: libdbus-1-3
  Depends: libdrm2
  Depends: libexpat1
  Depends: libgbm1
  Depends: <libgcc1>
    libgcc-s1
  Depends: libgdk-pixbuf2.0-0
  Depends: libglib2.0-0
  Depends: libgtk-3-0
  Depends: libnspr4
  Depends: libnss3
  Depends: libpango-1.0-0
  Depends: libpangocairo-1.0-0
  Depends: libx11-6
  Depends: libx11-xcb1
  Depends: libxcb-dri3-0
  Depends: libxcb1
  Depends: libxcomposite1
  Depends: libxdamage1
  Depends: libxext6
  Depends: libxfixes3
  Depends: libxrandr2
  Depends: wget
    wget:i386
  Depends: xdg-utils
  Recommends: libu2f-udev
  Recommends: libvulkan1

Управление зависимостями выполняется на этапе упаковки, т.е. Разработчики Ubuntu и сотрудники Google, которые сами создают пакеты.

Для пакетов репозитория Ubuntu, зависимые правила можно увидеть на https://packages.ubuntu.com/ , а также через команды. Это не так просто со сторонними пакетами, такими как google-chrome-stable (таким образом, я прибег к быстрому примеру из моего собственного окна и запроса команд).

3
ответ дан 4 January 2021 в 08:19

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

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