Я новичок в 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
?
Спасибо.
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
имя взято из того репозитория.
Мой первый вопрос: Каково различие между выполнением 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
. Снова, очень характерный для этого пакета, и необходимо спросить относительно их каналов поддержки.