Как на самом деле пакеты устанавливаются через apt-get install?

29

При использовании apt-get installметода для установки пакета в Ubuntu, есть ли принципиальная разница между получением исходного кода для этого пакета и созданием его с нуля? Имеет ли apt-get installфункциональность просто источник загрузки и построить его на своей машине в указанную директорию или там больше происходит за кулисами?

Наконец (может быть, это не имеет ответа) один метод лучше, чем другой? На что я обращаю внимание, это то, что сборка самостоятельно из исходного кода имеет какие-либо преимущества или лучше позволить ей apt-getделать свое дело?

mathematician1975
источник

Ответы:

25

Преимущества системы управления пакетами, такой как apt, yum, pacman, emerge и т. Д., Включают:

  • Легко узнать, какая версия пакета установлена ​​или доступна.
  • Удалить пакет полностью, убедившись, что все его файлы исчезли.
  • Нетрудно проверить целостность файлов пакетов, чтобы вы могли увидеть, были ли они повреждены или подделаны.
  • Пакет легко обновить, установив новую версию и удалив все файлы старых версий. Это позволит не оставлять какие-либо устаревшие файлы из старого пакета, чтобы запутать или сломать вещи.
  • Легко увидеть, какие пакеты требуют или предоставляют вещи, которые предоставляют или требуют другие пакеты, поэтому вы можете быть уверены, что у вас есть необходимые элементы для правильной работы пакета.
  • Это легко установить или удалить группы пакетов.
  • Во многих случаях возможно вернуться к предыдущей версии пакета, например, когда в новой версии есть ошибка.

Хотя это для Fedora, смотрите также:

https://fedoraproject.org/wiki/Package_management_system

Установка из источника может иметь преимущества

  • Вы можете настроить двоичные файлы (включить / отключить параметры)
  • Более актуальный пакет доступен в репозиториях.
  • Иногда необходимо для исправления ошибок

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

IMO, если вы хотите скомпилировать все или большинство ваших пакетов, я бы посоветовал Gentoo.

пантера
источник
1
Чтобы уточнить этот отличный ответ, если вы скомпилируете себя, Менеджер обновлений останется неосведомленным и, следовательно, не будет обновлять ваше приложение после выпуска обновлений. Кроме того, apt (выбранный менеджер пакетов Ubuntu) не компилируется; он загружает готовые скомпилированные двоичные файлы. Наконец, apt автоматически поддерживает вашу систему меню при установке или удалении программ. Когда вы вручную компилируете, вам придется делать это самостоятельно.
Пэдди Ландау
1
Еще одно обычно небольшое преимущество компиляции пакетов - это то, что они будут скомпилированы с большим знанием вашего аппаратного обеспечения и могут работать быстрее. Если вы идете по этому пути, рассмотрите использование checkinstall. asic-linux.com.mx/~izto/checkinstall Он отслеживает то, что было установлено, и помогает аккуратно удалить его позже, если это необходимо.
Джо
Я исправлен в отношении более быстрой части.
Джо
18

Apt-get - это утилита обработки пакетов APT (CLI), серверная часть к Synaptic и Aptitude .

Метод apt-get при запуске из вашей системы проверяет официальные источники или репозитории, перечисленные в файле

etc/apt/sources.list

Например, работает (что я использую) , работает что-то вродеsudo apt-get update && sudo apt-get upgrade

введите описание изображения здесь

где Ign (Ignore) перед ссылкой указывает, что никаких изменений не было сделано с момента последнего посещения этих репозиториев, а Get - получение файла Sources с указанием изменений в новом доступном пакете в этом репозитории.

Нет, утилита apt-get не загружает исходный файл , а загружает пакет .deb, упакованный и выпущенный официальными упаковщиками Ubuntu, который был протестирован на стабильность и интеграцию с вашей системой.

APT-GET , загруженные пакеты можно найти в

/var/cache/apt

где вы можете увидеть все , Updatesкак .deb пакеты , и вы даже можете сравнить перепроверить свою версию, посетив эти Precise-обновления пакетов .

Что касается компиляции из пакетов с исходным кодом, это не рекомендуется и даже не рекомендуется для Ubuntu 12.04, поскольку это LTS Release, вы можете посмотреть причины здесь

Лучше ли скомпилировать из исходного кода или установить из пакета .deb?

Ускорит ли компиляция программ из исходного кода мою операционную систему?

Преимущества / недостатки установки из исходного кода

Для дальнейших ссылок: apt-get , sources.list .

atenz
источник
фактически три программы, apt-get, aptitude и synaptic, являются бэк-эндами дляdpkg
Хавьер Лопес
1
Aptitude является интерфейсом для dpkg . Принимая во внимание, что dpkg может использоваться в качестве
внешнего
2

Если вы строите из исходного кода, у вас есть больше возможностей в том, что включено. Установка из apt-getпросто устанавливает предварительно собранный пакет.

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

Кори Уитакер
источник
Таким образом, apt-get ничего не создает - просто загружает бинарный файл?
математик1975
3
В точку. Он загружает готовый двоичный файл для вашей архитектуры (amd64, i386, armel и т. Д.).
tgm4883
2

Я думаю, что вы можете использовать apt-get для установки источников пакетов.

  1. Вам необходимо активировать репозитории исходного кода

    Откройте файл /etc/apt/sources.list, вы увидите закомментированные строки (начинающиеся с #), в которых есть «источник».

    Раскомментируйте их

  2. Установите зависимости программы, которую вы хотите:

    sudo apt-get build-dep "program"

  3. Скачайте и скомпилируйте вашу программу:

    sudo apt-get -b source "program"

После этого вы получаете пакет .deb в свой домашний каталог.

LnxSlck
источник