Должен ли я устанавливать программы из исходного tarball (`.tar.gz`) из Центра программного обеспечения Ubuntu или из другого места?

Существует несколько способов установки приложения в Ubuntu:

Вы можете загрузить исходный архив (обычно файл .tar.gz или .tar.bz2) и установить его вручную. (См. Как установить файл .tar.gz (или .tar.bz2)?) Вы можете загрузить файл .deb и установить его вручную, используя dpkg или Центр программного обеспечения. Вы можете найти приложение в программном центре Ubuntu и установить его там, или использовать apt с официальными репозиториями Ubuntu. Вы можете найти PPA или стороннее репо и установить его оттуда.

Каковы плюсы и минусы каждого метода? Пожалуйста, обсудите вопросы безопасности, частоту обновлений и надежность программы каждого метода в вашем ответе.

1
задан 13 April 2017 в 15:24

1 ответ

Надежность: при установке с tarball программное обеспечение может попытаться перезаписать другое программное обеспечение. Требуется сборка зависимостей, и процесс имеет высокую частоту отказов. Если вы устанавливаете программное обеспечение, от которого зависят пакеты в репозиториях, это не будет удовлетворять этой зависимости, поскольку оно не зарегистрировано в dpkg, если вы не используете checkinstall для временного преобразования его в пакет debian. При этом вы рискуете сломаться dpkg. Даже если код является открытым исходным кодом, если вы не убедитесь, что он не был изменен, вы все равно должны его загрузить с доверенного сайта. Вы можете установить несколько версий программного обеспечения, если оно использует разные каталоги. Вы можете переопределить это в make-файле. Использование пакета debian гарантирует, что файлы не будут перезаписывать файлы других программ, однако при использовании sudo dpkg -i file.deb сначала необходимо установить зависимости. Когда вы устанавливаете этот путь, вы не будете получать обновления, если пакет не находится в репозиториях, но этот пакет будет удовлетворять требованиям, требующим этого программного обеспечения. Это также, скорее всего, даст этому пакету запись в меню или, по крайней мере, регистрационные файлы. Пакеты Debian обычно тестируются с помощью Lintian, который гарантирует, что пакеты удовлетворяют или превосходят набор стандартов, которые могут быть довольно строгими, и зависит от того, имеют ли определенные файлы какой-либо исполняемый код или нет. Невозможно установить несколько версий одного и того же пакета. Плохо сделанный пакет не может быть установлен, не может удалить или даже сломать DPKG, что приведет к сложному ремонту, безумным поисковым запросам или даже переустановке, если проблема серьезная. Использование apt - лучший вариант, когда это возможно. Зависимости будут автоматически загружаться и устанавливаться, а пакеты создаются с использованием надежных конфигураций сервера сборки на панели запуска, что сводит к минимуму сбои. Пакеты можно искать через aptitude или другие подобные инструменты, а обновления будут легко облегчаться с помощью диспетчера обновлений. Поскольку зависимости также исходят из apt, пакет с большей вероятностью будет взаимодействовать с зависимостями должным образом. Пакеты тестируются через Lintian, как и для debs, но тестирование в сочетании с высокостабильными серверами сборки делает еще более стабильные пакеты. Поскольку пакеты проходят через серверы сборки Ubuntu, скорее всего, они будут настроены для интеграции с остальной частью ОС. Невозможно установить несколько версий одного и того же пакета. Поскольку серверы сборки Ubuntu используются для PPA, есть меньше изменений, которые вы сломаете apt из-за авто-линицианизации. Обновление: с помощью tarball вы не получите никаких обновлений, если у программы нет собственной проверки для них. При этом вам необходимо будет установить такие обновления вручную, и они не будут объединены в одном месте. Вероятно, вы сможете получить ночной или даже текущий исходный код в tarball для компиляции и установки. Если вам нужен код с кратковременным выпуском, это может быть полезно. С debian пакеты будут обновляться только в том случае, если у вас есть репозиторий для них. Разработчики, скорее всего, сделают пакеты debian немного отстающими от источника кровотечения, но бета-версии часто встречаются с дебютом в Интернете. С apt пакеты будут обновляться очень легко. Обновления объединяются в одном месте, диспетчере обновлений, и выполняются автоматически или полуавтоматически. Если вы не используете альфа или бета-версию Ubuntu, вы будете использовать проверенные версии, даже если они являются версией или двумя за текущим исходным источником. Обновления безопасности будут нажаты, как только они будут слегка проверены, чтобы убедиться, что они не ухудшают ситуацию. Это означает, что ваша безопасность будет защищена своевременными обновлениями, но эти обновления будут проверены во избежание потери данных. Безопасность: Tarballs никоим образом не подписаны цифровой подписью. Они могут быть искалечены или изменены вредоносными третьими лицами. Даже если вы делаете hashsum (избегайте MD5), вы все равно должны доверять владельцу сайта и автору пакета, поскольку они предоставляют SHA- или MD5-суммы. Пакеты Debian не подписаны, однако dpkg не разрешит пакет debian перезаписывать файлы другого, поэтому вредоносный deb не может уничтожить init или испортить bash, перезаписав его. Вы всегда должны доверять веб-сайту и автору пакета. apt использует подписанные ключи для репозиториев, поэтому они могут быть искалечены без появления красного флага. Загрузки PPA имеют цифровую подпись, поэтому не владельцы PPA не могут поставить сломанные или небезопасные пакеты. Также выполняется принудительная перезапись файлов другого пакета. Конечно, вы должны доверять владельцу PPA или репозиторию, так как неконтролируемые пакеты с вредоносным кодом будут выполняться при запуске.
32
ответ дан 25 May 2018 в 03:45
  • 1
    Предлагаю добавить интеграцию. Менеджеры пакетов Ubuntu и upstream Debian уверены, что пакеты участвуют в общесистемных функциях, таких как система альтернатив (у меня есть X-программы, которые могут открывать веб-страницу, какой я хочу быть по умолчанию) и так далее. Как правило, ручная установка tarball не работает. – Warren P 2 December 2012 в 22:02
  • 2
    @WarrenP Я действительно добавил это, но это может быть неясно. Благодаря! – hexafraction 2 December 2012 в 23:22
  • 3
    Был ли «Если вы устанавливаете программное обеспечение, из которого зависят пакеты в репозиториях, это не будет удовлетворять этой зависимости, поскольку оно не зарегистрировано с dpkg . & Quot; в первой пулевой точке, предназначенной для охвата интеграции ? – user 30 January 2013 в 09:15
  • 4
    Был ли «Если вы устанавливаете программное обеспечение, из которого зависят пакеты в репозиториях, это не будет удовлетворять этой зависимости, поскольку оно не зарегистрировано с dpkg . & Quot; в первой пулевой точке, предназначенной для охвата интеграции ? – user 30 January 2013 в 09:15
  • 5
    Был ли «Если вы устанавливаете программное обеспечение, из которого зависят пакеты в репозиториях, это не будет удовлетворять этой зависимости, поскольку оно не зарегистрировано с dpkg . & Quot; в первой пулевой точке, предназначенной для охвата интеграции ? – user 30 January 2013 в 09:15
  • 6
    Был ли «Если вы устанавливаете программное обеспечение, из которого зависят пакеты в репозиториях, это не будет удовлетворять этой зависимости, поскольку оно не зарегистрировано с dpkg . & Quot; в первой пулевой точке, предназначенной для охвата интеграции ? – user 30 January 2013 в 09:15
  • 7
    Был ли «Если вы устанавливаете программное обеспечение, из которого зависят пакеты в репозиториях, это не будет удовлетворять этой зависимости, поскольку оно не зарегистрировано с dpkg . & Quot; в первой пулевой точке, предназначенной для охвата интеграции ? – user 30 January 2013 в 09:15
  • 8
    Был ли «Если вы устанавливаете программное обеспечение, из которого зависят пакеты в репозиториях, это не будет удовлетворять этой зависимости, поскольку оно не зарегистрировано с dpkg . & Quot; в первой пулевой точке, предназначенной для охвата интеграции ? – user 30 January 2013 в 09:15
  • 9
    @ vasa1 Это касается tarballs, поскольку Apt и dpkg будут проверять свои базы данных, а не файловую систему, на определение того, установлен ли пакет. Вы всегда можете использовать checkinstall, чтобы обойти это. – hexafraction 30 January 2013 в 17:25

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

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