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

29

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

  • Вы можете скачать исходный архив (обычно .tar.gzэто .tar.bz2файл или файл) и установить его вручную. (См. Как установить файл .tar.gz (или .tar.bz2)? )

  • Вы можете скачать .debфайл и установить его вручную, используя dpkgили Центр программного обеспечения.

  • Вы можете найти приложение в Центре программного обеспечения Ubuntu и установить его там или использовать aptс официальными репозиториями Ubuntu.

  • Вы можете найти PPA или сторонний репозиторий и установить его оттуда.

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

Флимм
источник
1
это много вопросов в одном. Возможно, было бы немного лучше задать более сфокусированный вопрос. По умолчанию используется Центр программного обеспечения Ubuntu. Хорошее сравнение / контрастирование должно быть между tar-шарами (.tar.gz) и экосистемой apt-get + .deb (включая командную строку и Ubuntu Software Center).
Уоррен П
Если задать четыре отдельных вопроса, ответ будет / должен быть одинаковым для всех четырех: предпочитайте установку / обновление с помощью pkg-менеджера из репозитория (основной или сторонний). Если это не вариант, то вы можете начать знакомиться с общими плюсами и минусами этого, но с этого момента, вероятно, все сводится к тому, какое приложение используется и что вы конкретно хотите с ним делать. (Например, я устанавливаю стандартную «java» из общедоступного репозитория, но как разработчик я также устанавливаю 5 разных версий в / opt / java через tar.gz's).
Майкл

Ответы:

33
  • Надежность:
    • При установке из архива, программное обеспечение может попытаться перезаписать другое программное обеспечение. Необходимы зависимости сборки, и процесс имеет высокую частоту отказов. Если вы устанавливаете программное обеспечение, от которого зависят пакеты в репозиториях, оно не будет удовлетворять этой зависимости, поскольку оно не зарегистрировано 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, вы будете использовать хорошо протестированные версии, даже если они являются версией или двумя за текущим исходным кодом. Обновления безопасности будут отправлены, как только они будут легко протестированы, чтобы убедиться, что они не ухудшают ситуацию. Это означает, что ваша безопасность будет защищена своевременными обновлениями, но эти обновления будут проверяться во избежание потери данных.
  • Безопасность:
    • Тарболы не имеют цифровой подписи никоим образом. Они могут быть искажены или изменены злонамеренными третьими лицами. Даже если вы используете хэш-сумму (избегайте MD5), вы все равно должны доверять владельцу сайта и автору пакета, так как они предоставляют суммы SHA или MD5.
    • Пакеты Debian не подписаны, однако dpkgне позволят пакету debian перезаписывать файлы другого, поэтому вредоносный deb не может уничтожить initили связываться с bashперезаписью. Вы всегда должны доверять сайту и автору пакета.
    • aptиспользует подписанные ключи для репозиториев, поэтому они не могут быть повреждены без появления красного флага. Загрузки PPA имеют цифровую подпись, поэтому владельцы PPA не могут создавать поврежденные или небезопасные пакеты. Также не применяется перезапись для файлов другого пакета. Конечно, вы должны доверять PPA или владельцу репозитория, поскольку непроверенные пакеты с вредоносным кодом будут выполняться при запуске.
ζ--
источник
1
Я предлагаю вам добавить интеграцию. Менеджеры пакетов Ubuntu и вышестоящих Debian следят за тем, чтобы пакеты участвовали в общесистемных функциях, таких как система альтернатив (у меня есть X-программы, которые могут открывать веб-страницы, которые я хочу использовать по умолчанию) и так далее. Ручная установка tarball обычно не работает таким образом.
Уоррен П
@WarrenP Я действительно добавил это, но это может быть не совсем понятно. Благодарность!
ζ--
Было: «Если вы устанавливаете программное обеспечение, от которого зависят пакеты в репозиториях, это не удовлетворит эту зависимость, поскольку она не зарегистрирована в dpkg ». в первом пункте пули, предназначенном для охвата интеграции ?
1
@ vasa1 Это относится к архивам, поскольку Apt и dpkg проверяют свои базы данных, а не файловую систему, чтобы определить, установлен ли пакет. Вы всегда можете использовать, checkinstallчтобы обойти это.
ζ--
19

Короткий ответ заключается в том, что установка из Ubuntu Software Center, как правило, предпочтительнее всех других методов . Однако бывают случаи, когда вы можете захотеть установить программу откуда-то еще.


Установка из источника:

  • Последствия для безопасности : вам нужно доверять авторам программного обеспечения и веб-сайту, на котором размещена загрузка. Вам также следует убедиться, что загрузка выполняется через HTTPS, в противном случае сторонние пользователи могут изменить загрузку.

  • Частота обновлений : вы всегда получите самые свежие и лучшие! Обновления будут такими же частыми, как и авторы оригинала. Однако вам придется самостоятельно проверять наличие обновлений вручную.

  • Надежность : он может быть не таким надежным, как другие методы, потому что программное обеспечение будет проходить меньше испытаний, и, возможно, даже не было протестировано для Ubuntu, просто для других дистрибутивов Linux.

  • Простота установки и удаления : самый сложный из всех вариантов. Даже опытные пользователи могут избежать этой опции, потому что они предпочитают использовать нативные пакеты Debian, которыми намного проще управлять.

Установка из .debпакета:

  • Последствия для безопасности : То же, что установка из источника.

  • Частота обновления : такая же, как установка из источника.

  • Надежность : чуть лучше, чем установка из источника. Если авторы предоставили .debпакет, это означает, что они, вероятно, провели минимальное тестирование на Debian или Ubuntu.

  • Простота установки и удаления : очень просто. Просто дважды щелкните и нажмите «Установить»! Точно так же легко удалить.

Установка из Центра программного обеспечения Ubuntu:

  • Последствия для безопасности : вам нужно доверять авторам программного обеспечения и разработчикам репозитория Ubuntu. В целом, это лучшая безопасность, чем установка непосредственно из исходного кода, потому что программа была в некоторой степени проверена сопровождающими Debian и / или Ubuntu. Сопровождающие Debian и / или Ubuntu могут также исправить программу, чтобы исправить недостатки безопасности, если программа имеет открытый исходный код.

  • Частота обновлений : сопровождающие Debian и / или Ubuntu выбирают только некоторые выпуски программного обеспечения. (Например, они могут выбирать только стабильные обновления). Существует задержка между выпуском программы и ее включением в репозитории Debian и / или Ubuntu. Если вы хотите самое последнее и лучшее, это не лучший вариант. Если вы хотите стабильные обновления, которые были рассмотрены, это хороший вариант. Обновления предлагаются автоматически через менеджер обновлений и apt-get.

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

  • Простота установки и удаления : очень, очень легко.

Установка из PPA или стороннего репо:

  • Последствия для безопасности : вам нужно доверять авторам программного обеспечения и тому, кто поддерживает PPA. Абсолютно любой может разместить PPA, поэтому не доверяйте PPA только потому, что он находится на Launchpad. Пользователь мог быть ленивым и вообще не просматривать программное обеспечение.

  • Частота обновления : зависит от PPA. Проверить наличие обновлений легко.

  • Надежность : часто менее надежная, чем установка из Ubuntu Software Center. PPA предназначены для программ, которые еще не соответствуют стандартам Ubuntu Software Center, поэтому они практически гарантированно менее надежны.

  • Простота установки и удаления : это не сложно освоить, и оно хорошо сочетается с управлением пакетами в Ubuntu.

Флимм
источник
1
В apt-getлюбом случае ОСК - это всего лишь фронтенд . Давайте не будем превращать это в дискуссию по поводу GUI против командной строки. Если вы думаете, что выбор стоит обсудить, начните другой вопрос.
Flimm
2
@Flimm: не совсем, USC также может установить пакет .deb, поэтому более целесообразно называть USC внешним интерфейсом для apt-get и dpkg.
Ли Райан
1
Я не говорю "дебаты", я говорю "пользователи приходят сюда, чтобы получить ясность, и этот вопрос и этот ответ, кажется, не проясняют вопросы".
Уоррен П
1
@LieRyan: согласен.
Flimm
1
@WarrenP: я не согласен с тем, что пользователи приходят сюда. Пользователи приходят сюда, чтобы решить, откуда скачать и установить приложение. Если это не ясно из вопроса, мы можем отредактировать его. Я думаю, что вопрос ясен, если у вас есть другой вопрос, более полезный для пользователей, создайте новый пост с вопросом.
Flimm