Понимание различий между «apt install» и «dpkg -i»

Я новичок в Ubuntu, пытаюсь понять, как работает управление пакетами, и у меня есть несколько вопросов. Это произошло, когда я пытался установить CUDA на свою машину, поэтому я буду использовать CUDA в качестве примера, но мне очень хотелось бы узнать об этом в общих чертах.

Итак, после обучения я скачал файл с именем cuda-repo-ubuntu1804_10.0.130-1_amd64.deb. Затем я побежал sudo dpkg -i cuda-repo-ubuntu1804_10.0.130-1_amd64.deb. Наконец, я запустил sudo apt install cuda.

Мой первый вопрос: в чем разница между выполнением dpkg -i для файла .deb и выполнением apt install для имени пакета? Из того, что я прочитал, apt использует dpkg внизу, так что я не понимаю, почему оба будут использоваться в этом случае.

Мой второй вопрос: что говорит мой смысл cuda? Я понимаю, как запуск dpkg для локального файла затем установит этот файл, но я не понимаю, как имя cuda связано с этим файлом .deb.

Мой третий вопрос: скажем, есть более новая версия этого пакета, которая входит в файл с именем cuda-repo-ubuntu1804_10.1_amd64.deb. Что бы произошло, если бы мне пришлось бежать sudo apt upgrade cuda? Будет ли это удалить все файлы для cuda-repo-ubuntu1804_10.0.130-1_amd64.deb и установить cuda-repo-ubuntu1804_10.1_amd64.deb?

Спасибо.

3
задан 5 September 2019 в 18:32

2 ответа

dpkg -i <deb_file> устанавливает локально сохраненный пакет.

apt install cuda загрузки и установки cuda пакет из репозиториев Ubuntu и PPAs, если кто-либо установлен.

Если Вы работаете sudo apt upgrade, это проверит репозитории на новые версии установленных пакетов и обновит их.

Это похоже cuda-repo-ubuntu1804_10.0.130-1_amd64.deb устанавливает репозиторий, который будет проверен на обновления. Можно изучить /etc/apt/sources.list.d и посмотрите, существует ли cuda файл хранилища.

Таким образом, если Вы работаете apt upgrade и существует новая версия в том репозитории, это получит обновление.

cuda имя взято из того репозитория.

2
ответ дан 1 December 2019 в 16:49

Мой первый вопрос: Каково различие между выполнением dpkg-i на .deb файле и выполнением способной установки на имени пакета? Из того, что я читал, способное использование dpkg внизу, таким образом, я смущен относительно того, почему оба использовались бы в этом случае.

dpkg может использоваться исключительно на локальных файлах, в то время как apt-get и позже apt инструменты, разработанные, чтобы использоваться конечным пользователем, и могут использоваться и на локальных файлах и на находящихся в репозитории файлах. Они создаются сверху dpkg, подразумевать, что они будут все еще называть его и использовать его для установки безотносительно. Они, возможно, более удобны для пользователя. Не должно быть никакого различия в вызове apt или dpkg на локальном .deb файле. Но только apt и apt-get может использоваться на удаленных файлах, означая, что они автоматически загрузят и установят их. Я не уверен, но склонный мог бы также заботиться о зависимостях с локальными .deb файлами. Это, конечно, делает с находящимися в репозитории пакетами.

Мой второй вопрос: Что говорит моей Кв. значение cuda? Я понимаю, как выполнение dpkg на локальном файле затем установит этот файл, но я не понимаю, как имя cuda связано с этим .deb файлом.

Из чего говорит склонный значение cuda Ваши исходные файлы. Из того, что я могу сказать, cuda не находятся в репозиториях по умолчанию, вероятно, потому что это - собственное программное обеспечение. Так, если Вы пробуете sudo apt install cuda из поля это не будет работать, потому что это будет искать его и ничего не найдет с этим именем.

То, что происходит, - то, что некоторые программы, как часть их .deb файла установки, добавляют себя к исходному списку. Google Chrome делает что-то подобное. Когда Вы загрузите Google Chrome .deb файл (и Ваша cuda программа), они будут, поскольку часть их установки добавляет строку к /etc/apt/sources.list или файл к /etc/apt/sources.list.d/, таким образом каждый раз, когда Вы работаете sudo apt update это перейдет к ссылке и загрузит источник от них, и на этом источнике будет упоминание о названном пакете cuda то, что можно установить и быть автоматически обновлены как sudo apt upgrade. Это подобно добавлению PPA. Некоторые другие программы добавляют себя к источникам как часть сценария установки удара, или они могли бы попросить, чтобы Вы добавили их вручную. Я верю лучшей причине сделать, это - простота обновления, поскольку это будет автоматизировано как часть Ваших регулярных обновлений.

Мой третий вопрос: Скажем, существует более новая версия этого пакета, который прибывает в файл, названный cuda-repo-ubuntu1804_10.1_amd64.deb. Что произошло бы, если бы я должен был выполнить sudo способное обновление cuda? Это удалило бы все файлы для cuda-repo-ubuntu1804_10.0.130-1_amd64.deb и установило бы cuda-repo-ubuntu1804_10.1_amd64.deb?

Необходимо, вероятно, расспросить тут и там cuda форумы для более авторитетного ответа на этом, и что является надлежащим процессом для обновления к более новым версиям. Используя пример Google Chrome, это автоматически обновит к более новой версии, таким образом, это удалит старый и сохранит только новый. Но это очень характерно для этого cuda пакета, и как они решили обработать вещи.

Возможно, они используют cuda пакет, который они добавляют к источникам только для зависимостей и бесплатного программного обеспечения, которое они не могут связать своим собственным пакетом, таким образом, необходимо было бы все еще загрузить новый .deb файл и установить его. Возможно, они используют его для обновления всего, и это автоматически загрузит и установит новую версию, когда Вы будете работать обычно sudo apt update && sudo apt upgrade. Снова, очень характерный для этого пакета, и необходимо спросить относительно их каналов поддержки.

0
ответ дан 1 December 2019 в 16:49

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

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