Насколько я понимаю,
sudo apt install package-name
, установка из программного центра, sudo apt install ./official-deb
), все зависимости пакетов будут правильно обрабатываться apt
, и проблем с зависимостями не будет Как насчет того, чтобы я установил пакет .deb, который не является частью официального репозитория (например, Пакет Chrome .deb), выполнив sudo apt install ./chrome.deb
. Может ли это привести к проблеме зависимости во время самой установки и / или будущего обновления с sudo apt update && .....
? Если да, то можно ли настроить его так, чтобы зависимости обрабатывались apt
?
P.S. Извините, если это основной вопрос.
Короче да. Практически каждый метод установки в Linux (за исключением, может быть, appimages и snap) обязательно будет иметь проблемы с зависимостями. Однако смысл использования apt для установки файлов .deb в том, что он все еще может находить зависимости. У вас все еще могут быть проблемы с зависимостями с файлами .deb и apt, но они не так распространены, как их установка с помощью dpkg -i
, как сказано в вашем исходном сообщении (что почти гарантированно будет иметь проблемы с зависимостями). На мой взгляд, лучше всего просто установить его с умом и надеждой. :) apt обычно разбирается в этом за вас, особенно с таким популярным пакетом, как Google Chrome, который предназначен для простой установки. Кроме того, чтобы уточнить, вы используете apt для установки из PPA сразу после того, как добавили их в свои списки источников. Так что, хотя вы можете столкнуться с проблемами зависимости с .deb (s), вы можете так же легко сделать это с помощью apt install
, даже из официальных репозиториев.
В комментарии вы заявил, что вас больше беспокоят проблемы с зависимостями, вызванные обновлениями из-за различий в версиях библиотек. Я переместил свой ответ в комментарии сюда, а также добавил кое-что:
Это может произойти, но опять же, вероятность того, что это произойдет с .debs, не намного больше, чем с официальными репозиториями. Если пакеты указаны как конфликтующие друг с другом, apt выдаст ошибку независимо от источника файлов. Пакеты также могут перечислять ряд версий зависимостей, с которыми они работают. Их можно просмотреть в apt или в Интернете по адресу http://packages.ubuntu.com . Я не могу придумать ни одного с верхним диапазоном, но вы можете увидеть это в таком пакете, как https://packages.ubuntu.com/focal/htop , в котором есть несколько зависимостей, перечисленных с минимальными версиями. Кроме того, некоторые библиотеки интегрируются в код во время компиляции и поэтому не используются пакетами совместно. И многие библиотеки имеют защиту от этого: обратная и прямая совместимость.
Да и Нет.
Это будет зависеть от того, что находится внутри пакета, и от того, какие зависимости он имеет и требует. Есть много пакетов, которые НЕ влияют ни на что другое, но большинство из них окажут влияние. Это будет зависеть от пакета.
В вашем примере 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
(таким образом, я прибег к быстрому примеру из моего собственного окна и запроса команд).