Интересно при установке программного обеспечения снаружи Ubuntu, упаковочная система может перепутать apt/dpkg инструменты. Я знаю, что установка слишком новых .deb пакетов и попытка рекурсивно решить зависимости вручную (потому что dependendencies являются также слишком новыми) могут смутить их. Но что относительно различных упаковочных инструментов как зернышко или снимок? И что относительно того, чтобы установить вещи "sudo делают установку" из источника. Я думаю, что apt/dpkg не знает обо всем этом устанавливаемом программном обеспечении. Это затем безопасно к целостности этой упаковочной системы? Что, если я делаю, например:
sudo apt install cmake #low version from Ubuntu repository
sudo make install #high version from Cmake website in sources
sudo apt remove cmake
Я предполагаю, что обе установки нацеливаются в то же местоположение в файловой системе.
Вы корректны для принятия этого dpkg
и apt
не знают об этом дополнительном программном обеспечении от pip
или sudo make install
. Однако обе установки не нацеливаются в то же местоположение в файловой системе. Дополнительное программное обеспечение от pip
или sudo make install
установлен в каталогах, которые имеют более высокий приоритет (ранее) в Вашем $PATH
Если Вы устанавливаете пакеты от pip
с --user
флаг, без sudo
, пакеты будут установлены на ~/.local/bin
Пакеты, установленные с sudo make install
команда будет обычно устанавливаться на /usr/local/bin
Если Вы работаете: echo $PATH
Вы будете видеть, что эти пути перечислены перед стандартными каталогами это deb
использование пакетов так вручную установленные пакеты выполняется при выполнении команды. Это помогает избежать конфликта, если тот же пакет был также установлен с помощью apt
или dpkg
.
Поэтому можно сохранить Ваш apt
зависимости удовлетворили, и Вы не должны удалять apt
версия cmake
. Таким образом, можно все еще обратиться dpkg
установленная версия cmake
в сценарии или терминале путем выполнения полного пути: /usr/bin/cmake
Выполните команду: cmake
выполниться sudo make install
версия.
То же идет для пакетов, установленных с помощью pip
. Например, если Вы установили youtube-dl
через apt-get
и затем установленное использование: pip install youtube-dl --user
, pip
версия: ~/.local/bin/youtube-dl
выполнился бы вместо /usr/bin/youtube-dl
.
Вы можете иметь две конфликтующих установленные версии и все еще использовать их обоих.
Это не должно говорить, что не будет конфликтов. Ваша система зависит от определенных пакетов как Python, который не может работать правильно, если Вы изменяете версию системного значения по умолчанию. Кроме того, установку случайным образом загруженного программного обеспечения считают менее безопасной, если Вы не доверяете своим источникам. Вручную загруженное программное обеспечение может также иметь ошибки или дефекты безопасности, и необходимо не забыть вручную обновлять путем загрузки программного обеспечения или использования pip
.
Может затем я делать apt/dpkg для установки в/usr/local (или ~/.local), если я не вполне верю определенному пакету? Я предполагаю, что не, потому что .deb пакеты содержат жесткие местоположения. С другой стороны, это не большая проблема для добавления одного инфикса при обработке этими инструментами.