как передать имена файлов в список в python в определенном формате?

Я не могу ответить, почему PBI не увенчался успехом, но могу ответить, почему разделяемые библиотеки предпочтительнее в Linux.

Главный аргумент - это безопасность : если в широко используемой библиотеке есть уязвимость, то нужно обновлять только эту библиотеку, а не все приложения, которые используют эту библиотеку (благодаря Совместимость с ABI). Это также означает, что (если вы в основном придерживаетесь основных репозиториев и PPA (в случае Ubuntu)), вам не нужно устанавливать 4 разные версии библиотеки только потому, что ваши приложения были скомпилированы для этих версий (например, Windows , где у вас, вероятно, будут установлены разные версии библиотек .NET или разные версии среды выполнения Visual C ++).

При этом, однако, могут быть случаи, когда приложения не обязаны использовать системную версию библиотек, а вместо этого могут использовать свою собственную версию. Например, Chromium зависит от многих библиотек, которые присутствуют в репозиториях большинства дистрибутивов. При нормальных обстоятельствах приложения будут компилироваться так, чтобы библиотеки, которые они использовали, были теми, которые были скомпилированы дистрибутивом. Однако в Ubuntu (по крайней мере) Chromium компилируется со своей собственной версией библиотек, потому что:

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

Что касается аргумента о дисковом пространстве, вы можете возразить, что для установки debootstrap версии Debian Jessie требуется менее 1 ГБ дискового пространства, что делает его отличным вариантом для небольших SD-карт. Windows, с другой стороны, требует не менее нескольких гигабайт дискового пространства.

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

Наконец, один из принципов Unix заключается в том, что каждое приложение выполняет только одну задачу и хорошо в этом умеет. Если бы приложения и библиотеки были статически связаны, то можно было бы считать, что они (косвенно) выполняют многие функции.

1
19.12.2017, 06:19
0 ответов

Теги

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