Чому існують оснащення-пакети - чи існує реальна потреба?


11

Припущення

Чесно кажучи, я не знаю багато про оснащення пакетами - але це питання не має значення для цього - дивіться нижче. Я припускаю, що система значно відрізняється від існуючої.

Чи має зміна сенс?

Чи є реальна потреба, достатньо сильна? Тобто - чи є новий випадок використання, достатньо важливий для розробки нового формату - та пов'язаної з ним інфраструктури?

Чи не було можливо змінити поточний метод, щоб охопити і нові випадки використання?

Або я пропускаю суть?

Цілком можливо, що те, що я бачу, - це здебільшого маркетинг - нові назви та презентація для мінімальних технічних змін, щоб отримати шанс, що будь-який орган вважає його "новим і кращим", і він може бути фактично використаний. Також, можливо, нові пакети настільки тісно базуються на існуючому форматі, що це, головним чином, зміна презентації користувачеві. Це, звичайно, може бути хорошим рішенням. У цьому випадку це питання мало б велике значення.

Тоді я би сподівався, що це все ще достатньо корисно, щоб відповісти на побічні аспекти. Просто дайте мені знати, якщо питання не корисне чи не бентежить нових користувачів, я радий його видалити.

Отже, навіщо вони існують?


Фон

Моя перша реакція була "Це не має сенсу!"

Це схоже на ситуацію, коли на сайті фізики хтось невдоволено запитав, чому ніхто не обговорює своїх блискучих нових ідей у ​​відповідях. Це сильно виглядало як ідеї про тріски; Настільки далекі від фактичних фізичних знань, що важко було знайти сенс навіть почати. Я написав відповідь, яка жодним словом не торкнулася його ідей, але пояснила, чому б просто не обговорювати припущення про ідеї кракпоту - не перший випадок цього. Думаю, відповідь насправді вплинула на точку.

Якщо мої припущення були правильними, цей випадок подібний.

Але тоді, може, ні - подивимось.


Існує близьке голосування, яке говорить "в основному на думці" - чи означає це, що відповіді очікуються на думці? Це в основному відповідь сама по собі, оскільки це означає, що немає єдиної консенсусу щодо необхідності змін. Таким чином, були б аргументи про і проти; Це означає, що моє запитання насправді дуже важливе і корисніше, ніж я очікував!
Волкер Зігель

2
Я проголосував за повторне відкриття цього питання. Це справді запитує, чому були введені оснастки, коли менеджери пакунків вже існували, а Ubuntu (та інші ОС) вже мали їх. Отже, ви маєте рацію: якщо це насправді головне питання, що ґрунтується на думці, це означає, що відповіді на це не можна було б дати, грунтуючись насамперед на фактах та досвіді. Однак, як ви бачили з відмінної відповіді Муру , це не так. Коли (або навіть якщо) слід застосувати знімки - це все-таки те, про що люди можуть вести передусім дискусії на основі думки, але це не те, що було.
Елія Каган

Відповіді:


17

Так, є реальна потреба.

Існує реальна потреба в чомусь подібному з першого разу, коли одне програмне забезпечення залежало від іншого.

Давайте зрозуміємо це:

Управління залежностями важко .

Є причина, чому його називають пеклом залежності . Системи упаковки, такі як RPM і Debian, були створені з метою уникнути пекла залежності. Однак хтось повинен оплатити витрати:

  1. У Windows, де програми вбудовують свої залежності, користувач повинен подбати про оновлення (та будь-які проблеми із безпекою через їх відсутність). Якщо я, розробник, хоче версія X для чогось свого додатка, просто: я надаю це моєму додатку. Тепер як я обробляю оновлення?
  2. У більшості дистрибутивів Linux (після Debian або Red Hat), де програма може залежати від програмного забезпечення із сховища, програма з сховища повинна залежати від програмного забезпечення із сховища. Якщо я хочу, щоб версія X чогось для мого додатка, а дистрибутив надав X, простий: я від цього залежу. А якщо дистрибутиву немає? Тоді: ???
    • Додавання декількох версій до дистрибутива збільшує навантаження на сервіс
    • Втрата можливості використовувати версію вибору залежностей збільшує навантаження на розробника
    • Втрата можливості користуватися версією вибору програм засмучує користувача

Будь-яка методика втрачає свободу.

І ось тут з'являються знімки: вони дозволяють розробнику включати версію X, а система упаковки керувати оновленнями. Хто оплачує витрати? Користувач:

  • вимагаючи більше місця.
  • піддаючи їх ризику через недбалий розробник, який не відновлює свої знімки, коли залежність виправлена.

Які вигоди я отримую в обмін?

  • Окрім безпеки за допомогою оновлень (про що, чесно кажучи, мало хто дбає), мені користувачеві не потрібно переживати про залежність, що стосується оснащення. Слово здебільшого втрачає значення.
  • Крім оновлень безпеки, розробнику програмного забезпечення не потрібно турбуватися про те, щоб користувачі встановили правильні залежності.

3
Так, я думаю, що залежність пекла це досить добре описує.
Volker Siegel

Дозвольте мені створити протилежний голос :), чому вони не просто використовують /opt?
user.dz

@Sneetsher думає про це так: що заважає одній програмі вмикати / відмовлятись писати інший додаток у / opt? Гірше, як ви заважаєте одному додатку читати приватні ключі іншого додатка?
Еван

@Evan, добре AppArmorвже вийшов, щоб висвітлити це. але спосіб захисту може бути різним. У будь-якому разі тема полягає у в'їзді.
user.dz

Муру, дякую, що написав усе це. Це, до речі, перша відповідь у Google про те, чому. Мені цікаво, хоча. Я бачу, що моя система використовує оснастки для, скажімо, Chromium. А зараз я хотів би встановити Skype. Зазвичай я б хотів, sudo apt-get install skypeале тоді я бачу, що це доступно як оснащення. Але коли я встановив Chromium, я не зробив нічого особливого, щоб змусити його використовувати оснащення. І все-таки так. Тож тепер я розумію, Чому існують защелки, і я радий, що вони є. Мені зараз цікаво, чи потрібно мені хвилюватися sudo snap install skype?
SDsolar

3

Однією особливістю знімків, яка може бути корисною, є можливість вибору каналу для розробників, які надають більше одного каналу, наприклад, випуск , кандидат , майстер тощо.

Наприклад, натиснувши кнопку " канал" для, nextcloudз'явиться діалогове вікно на скріншоті нижче.

Іншими сильними точками продажу є ізоляція, незмінність та пісочниця, які контролюються контекстом політики безпеки , що дозволяє визначати дозволи на додаток, також звані "штекерами", наприклад:

  • читати / записувати місця
  • доступ до знімного сховища
  • країни, де оснащення є білим / чорним списком
  • доступ до мережі
  • камера, принтер, джойстик, розташування GPS
  • налаштування системи
  • ... повний список оснащення інтерфейсів

Цей підхід певною мірою імітує пакети додатків MacOS та пісочницю додатків Android із дозволами та постачальниками / приймачами контенту.

ubuntu snap пакети виберіть канал

Тепер уявіть, що вам потрібно запустити десяток додатків із кожною власною версією певних бібліотек, власною версією виконання Python / Ruby / NodeJS, і ви не хочете потрапляти в пекло залежностей і псувати або забруднювати системні бібліотеки, ваші системні модулі Python / Node / Perl / Ruby тощо.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.