Snap приложение что это
Установка Snap в Linux
Что такое Snap пакеты?
Здесь в игру вступают пакеты. После завершения разработки программы её разработчики создают пакеты, например, deb или rpm и размещают их в репозиториях программного обеспечения, откуда пользователи могут их очень легко установить. Установить программу из любого deb пакета можно буквально в пару кликов. Но такие пакеты содержат только саму программу, все зависимости и необходимые ей библиотеки пакетный менеджер ищет и устанавливает автоматически.
В свою очередь Snap пакеты содержат саму программу, а также все её зависимости. Это имеет несколько преимуществ перед обычными deb или rpm пакетами, поскольку теперь программу можно запустить в любом дистрибутиве, а также разработчик может быть уверен, что его программа получает именно необходимые ей версии библиотек.
Установка snap
В дистрибутивах, основанных на Debian и в самом Debian для использования snap пакетов сначала надо установить менеджер пакетов snap. Для этого выполните:
sudo apt install snapd
Установка snap в Fedora или CentOS отличается не сильно:
sudo dnf install snapd
После установки для включения возможности установки классических приложений через snap надо создать символическую ссылку на /var/lib/snapd/snap в корне:
После этого можно установить магазин приложений snap-store:
sudo snap install snap-store
Или устанавливать пакеты snap через терминал.
Как пользоваться snap
Основы рассмотрели, теперь перейдем к управлению пакетами. Процесс взаимодействия со snap очень похож на apt или dnf, только не надо обновлять репозитории. Все действия выполняются в терминале.
1. Поиск пакетов
Чтобы найти нужный пакет или посмотреть есть ли он в магазине приложений snap используйте команду find. Например:
snap find chromium
Будут выведены все пакеты соответствующие данному критерию, доступные для установки в вашей системе. Если выполнить команду find без параметров, то система выведет несколько рекомендуемых пакетов.
2. Информация о пакете
Чтобы посмотреть информацию о пакете используйте команду info:
snap info chromium
3. Установка пакетов
Вы можете установить snap пакет в Ubuntu или любом другом дистрибутиве командой install:
sudo snap install chromium
Когда установка snap пакетов завершится, программа выдаст соответствующее сообщение. Для установки пакета из определенного канала используйте соответствующую опцию, например —stable, —candidate, —beta или —edge. По умолчанию используется канал stable. Например:
По умолчанию приложение может получить доступ только к тем частям системы, к которым у него подключены интерфейсы. Эти подключения устанавливаются автоматически во время установки пакета. Посмотреть их можно командой connections:
snap connections chromium
Иногда для приложений недостаточно такого уровня доступа. Тогда для них используется уровень безопасности classic. В этом режиме приложение получает доступ к системным ресурсам как любые другие системные программы. Для установки таких программ надо использовать опцию —classic, иначе установить их не получится:
Есть ещё один режим безопасности, при котором приложение получает полный доступ к системе: devmode. Для установки таких программ надо использовать опцию —devmode.
4. Удаление пакета
Удалить snap пакет из системы очень просто. Для этого достаточно использовать команду remove:
sudo snap remove chromium
5. Установленные программы
Для того чтобы посмотреть все пакеты, установленные в системе используйте команду list:
6. История изменений
Также вы можете посмотреть историю изменений, внесенных, в систему с помощью этого пакетного менеджера:
7. Обновление пакетов
Если вы хотите обновить пакет snap, до более новой версии, выполните команду refresh:
sudo snap refresh opera
Если установлена самая свежая версия вы получите сообщение об ошибке.
Для обновления всех пакетов, установленных в системе просто выполните команду refresh:
Если обновление вам не понравилось, вы можете откатить версию всех пакетов или одного из них до предыдущей. Для этого выполните команду revert:
sudo snap revert opera
Выводы
С момента создания этой технологии прошло много времени и сейчас доступно уже много snap пакетов. Они даже вытеснили многие PPA репозитории, что теперь заброшены и не поддерживаются. Поскольку существует инструмент snapcraft, который делает создание snap пакетов намного проще, все разработчики могут подготовить эти пакеты для своих программ.
А что вы думаете о системе управления пакетами и о самих пакетах snap? Будете использовать систему установки snap чаще чем apt? Напишите в комментариях!
Что такое Snapchat и как им пользоваться?
Snapchat (рус. Снапчат) — это социальная сеть, в которой люди могут обмениваться фотографиями и короткими видео, исчезающими через 24 часа. Кроме того, в противовес однообразным Facebook и Twitter, в Snapchat есть целый набор забавных функций и фильтров.
Главное отличие от других соцсетей в том, что здесь вы не увидите аккуратно составленных постов. Вся соль Snapchat в спонтанности, все вещи показываются «прямо сейчас».
Эван Шпигель, сооснователь Snapchat
Где скачать Snapchat: ios, Android
Факты о Snapchat:
Навигация в приложении
Открывая Snapchat, сразу же забудьте про бесконечную ленту новостей, к которой вы привыкли в других социальных сетях. После запуска приложение тут же активирует камеру. Все чаты начинаются с разговора, а в Snapchat за вас говорят изображения.
Изображения хранятся в течение 24 часов. Затем они исчезают.
Навигация в приложении тоже отличается от привычной. Здесь нет закрепленных справа или слева меню. Пользователи Snapchat переключаются между различными элементами интерфейса с помощью свайпов. Например, если в режиме камеры вы смахнете вправо, появится чат. Свайп вниз — и вы увидите настройки вашего аккаунта. Свайп влево — и перед вами появятся снапы других людей. (Можно сделать еще один свайп влево, и тогда вы увидите раздел Discover, где можно увидеть снапы от различных медиакорпораций вроде CNN, Vice и так далее).
Конечно, в эти разделы можно попасть и нажатием кнопок (квадрат в левом нижнем углу открывает чаты, привидение по центру вверху — переход к настройкам аккаунта, гамбургер в правом нижнем углу открывает раздел ваших историй), но в наше время люди привыкли свайпать, как они это делают в Tinder.
Осваиваем камеру
Камера Snapchat работает немного иначе, чем стандартный режим камеры на Android или iOS, поэтому в ней стоит разобраться. Например, если вы нажмете на кнопку съемки, приложение сделает снимок, а если вы будете ее удерживать, то Snapchat запишет видео.
В правом верхнем углу экрана есть специальная кнопка для переключения между задней и фронтальной камерой. В левом верхнем углу находится кнопка управления вспышкой.
Помимо фильтров, вы можете использовать линзы. Прежде чем сфотографировать кого-либо, нажмите на изображение его лица и удерживайте — на экране появятся линзы Snapchat. Эта крайне забавная функция накладывает на лицо (или лица) изображения и анимацию. Пользователи Snapchat особенно любят функцию «блевание радугой», которое сделали, кстати, украинские разработчики. (Snapchat приобрел одесский стартап Looksery в сентябре 2015 года — прим. ред.). Просто наложите эту линзу на лицо, откройте рот и наслаждайтесь карнавалом красок.
Маркетологи уже воспользовались возможностями приложения — в нем постоянно появляются новые линзы на тему новых популярных фильмов и шоу.
После редактирования фото или видео Snapchat покажет вам, что у вас получилось, и предложит дополнительные настройки. В правом верхнем углу есть значок стикера — в этом меню вы найдете кучу изображений, напоминающих эмодзи, которыми вы можете украсить свое фото.
Все снапы, будь то фото или видео, показываются максимум 10 секунд. Если вы хотите показать что-то в течение большего времени, то можете записать Историю Snapchat.
Меняем настройки в Snapchat
Если на экране камеры смахнуть вниз, откроется меню настроек вашего аккаунта.
Большое желтое привидение в центре экрана — ваш снап-код. Нажмите на него, и оно превратится в камеру, которую вам следует навести на свое лицо. Точки вокруг привидения работают как QR-код. Просто наведите камеру Snapchat на снап-код другого человека, коснитесь экрана, и вы мгновенно перейдете к его профилю и сможете добавить его в друзья.
Под снап-кодом вы найдете настройки контактов. Здесь можно просмотреть, на кого вы подписаны («Мои друзья»), кто подписан на вас («Добавили меня») и найти новые контакты («Добавить друзей»). Друзей можно добавлять не только по снап-коду, но и просто введя их имена в поиск. Кроме того, можно добавлять людей, которые находятся по соседству. (Это не автоматическая функция — чтобы активировать ее, нужно зайти в специальный раздел настроек).
Наконец, в правом верхнем углу есть значок шестеренки, который открывает доступ к более серьезным настройкам. Советуем обратить внимание на настройки приватности. Snapchat и так не дает просматривать ваши снапы людям, которые на вас не подписаны, но вы можете сделать ограничения еще более жесткими и даже закрыть доступ конкретным людям из своего списка друзей.
Не забывайте, что ваши друзья не узнают, когда вы просматривали их снапы и истории, но если вы сделаете скриншот — им придет уведомление. Знайте, что сохранение чужих снимков здесь не одобряют.
Смотрим истории
И, наконец, о хорошем. Свайп влево на экране камеры открывает раздел Историй. Снапы — это отдельные фотографии или видеоролики. Но выложенные один за другим, например, фото плюс видео, они превращаются в целые истории — хронологическую запись дня.
В разделе Историй есть три секции: Discover, Live и Все истории. Самый нижний подраздел Все истории — там можно найти фото и видео людей, на которых вы подписаны в Snapchat. Вы можете просматривать записи сколько угодно, пока не истечет их срок хранения, после чего в начале списка появятся новые снапы.
Далее идет секция Live — здесь хранится коллекция снапов, составляемых Snapchat в честь какого-то события. Например, там можно посмотреть историю, посвященную баскетбольному матчу, сделанную из снапов игроков и болельщиков. Или же вы увидите день из жизни звезды или работу команды, стоящей за каким-нибудь брендом. Такой тип live-историй очень популярен среди маркетологов.
Последний подраздел Discover больше всего популярен у пользователей постарше. Здесь можно подписаться на медиабренды: Buzzfeed, CNN, MTV, Cosmopolitan. Здесь можно просмотреть огромное количество историй от разных информационных порталов — все равно что пролистать хороший печатный журнал. С помощью таких организаций Snapchat намеренно привлекает пользователей постарше.
Пакетирование и публикация snap-приложения в Ubuntu 18.04
Финальный этап работы над приложением – пакетирование и распространение готового продукта – является одним из самых трудных. Дружественность и безопасность многих существующих методологий развертывания приложений оставляет желать лучшего. Также далеко не все методы поддерживают автоматическое обновление приложений после установки.
Snap – это современный формат пакетирования приложений с удобной песочницей и надежными функциями безопасности, которые включают изоляцию файловой системы, автоматическое обновление и интегрированное управление зависимостями. Snap-приложения (иногда их называют просто Snaps) можно загрузить и установить с помощью стандартных программ командной строки типа apt и yum. Система Ubuntu поставляется с предустановленным Snap, что делает ее удобной средой для Snap-приложений.
Этот мануал поможет вам создать приложение Snap и опубликовать его на Snap Store.
Требования
Выполнив все требования, войдите на сервер как пользователь sudo и приступайте к работе.
1: Подготовка приложения к пакетированию
Сначала нужно подготовить приложение к пакетированию как приложение Snap. Для этого нужно, чтобы все необходимое хранилось в одном каталоге.
Создайте каталог для Snap и перейдите в него:
Затем, если у вас уже есть приложение, поместите полную копию его исходного кода в каталог, который вы только что создали. Этот процесс в значительной степени зависит от того, какое именно приложение вы упаковываете. Если исходный код хранится в репозитории Git, вы можете выполнить git init в этом каталоге и выгрузить весь соответствующий код.
Если у вас еще нет приложения, которое вы хотели бы упаковать, вы можете создать тестовую программу «Hello World».
Для этого сначала создайте новый файл Go и откройте его с помощью любого удобного текстового редактора:
Затем добавьте в файл следующий код:
package main
import «fmt»
func main() <
fmt.Println(«Hello, world!»)
>
Сохраните и закройте файл.
Если у вас нет установки Go, вы можете установить программу с помощью команды:
sudo apt install golang-go
Установив Go, вы можете запустить свою программу с помощью команды:
go run helloworld.go
Вы получите такой вывод:
Итак, ваше приложение готово к пакетированию как Snap. Далее мы установим все программы, необходимые для пакетирования.
2: Установка Snapcraft
На этом этапе мы скачаем и установим Snapcraft, официальный инструмент пакетирования приложений Snap. Snapcraft доступен в Snap Store, который по умолчанию встроен в Ubuntu. То есть вы можете установить Snapcraft из командной строки, используя команду snap.
Команда snap эквивалентна команде apt, но с ее помощью можно устанавливать программное обеспечение из Snap Store, а не из репозиториев Apt.
Чтобы установить Snapcraft, выполните следующую команду:
Аргумент –classic установит Snapcraft без строгой песочницы, которую обычно используют Snaps. Snapcraft нужен этот аргумент, поскольку ему требуется более привилегированный доступ к вашей системе для надежной упаковки приложений.
Установив Snapcraft, вы увидите следующее:
snapcraft 3.9.8 from Canonical✓ installed
Затем вы можете проверить установку Snapcraft, запустив:
Эта команда должна вернуть версию установки:
snapcraft, version 3.9.8
Теперь, когда вы установили Snapcraft, вы можете начать определять конфигурацию и метаданные вашего приложения Snap.
3: Определение конфигурации и метаданных приложения Snap
Пора определить конфигурацию, структуру и метаданные приложения Snap.
Убедитесь, что вы все еще находитесь в каталоге приложений Snap:
Затем создайте и отредактируйте файл snapcraft.yaml через любой удобный текстовый редактор:
Файл snapcraft.yaml будет использоваться для хранения всей конфигурации приложения Snap, включая имя, описание и версию, а также параметры, связанные с управлением зависимостями и изолированной программной средой.
Начните с определения имени, описания и номера версии вашего приложения:
name: your-snap
summary: A summary of your application in 78 characters or less.
description: |
A detailed description of your application.
The description can have multiple lines.
version: ‘1.0’
Имя вашей программы Snap должно быть уникальным, если вы хотите опубликовать его в Snap Store. Поищите другие приложения с тем именем, которое вы выбрали, чтобы убедиться, что оно еще не занято.
Затем вы можете определить команды, которые хотите связать с вашим приложением. Это позволит использовать Snap прямо из командной строки Bash как обычную команду.
Добавьте в файл snapcraft.yaml следующее:
your-snap-command – это имя команды, которую вы хотите определить. Например, вы можете использовать команду helloworld для запуска вашей программы Hello World.
Строка command: your-snap позволяет сообщить Snapcraft, что делать при запуске команды приложения. В случае с «Hello World» вы должны использовать значение helloworld для ссылки на файл helloworld.go, что позволит Snapcraft успешно запустить вашу программу.
В итоге получится такая конфигурация:
apps:
helloworld:
command: helloworld
Если имя команды точно соответствует имени Snap-пакета, вы сможете запустить его непосредственно из командной строки. Если команда не соответствует имени Snap-пакета, оно будет автоматически добавляться перед командой (например, helloworld.command1).
Затем вы можете определить раздел parts, где хранятся компоненты, которые составляют ваше приложение Snap. Некоторые приложения Snap состоят из нескольких компонентов, но во многих случаях приложение включает всего один компонент – собственно само приложение.
Каждый компонент имеет связанный плагин. Например, для компонентов приложения, написанных на Ruby, используется плагин ruby, а для компонентов, написанных на Go, используется плагин go.
Вы можете использовать команду Snapcraft list-plugins, чтобы определить правильные плагины для приложения:
На экране появится такой список:
ant catkin-tools conda dump gradle make nil python rust
autotools cmake crystal go kbuild maven nodejs qmake scons
catkin colcon dotnet godeps kernel meson plainbox-provider ruby waf
Наиболее распространенными плагинами являются плагины для популярных языков программирования, таких как Go, Rust, Ruby или Python.
После того как вы определили необходимые плагины для своего приложения, вы можете добавить конфигурацию раздела parts в файл snapcraft.yaml:
Параметр конфигурации source позволяет указать относительный путь к исходному коду вашего приложения. Обычно это тот же каталог, в котором находится и сам файл snapcraft.yaml, поэтому значение source – символ точки (.).
Примечание: Если компонент вашего приложения имеет какие-либо зависимости, необходимые для его сборки или запуска, вы можете указать их, используя атрибуты build-packages и stage-packages. Указанные имена зависимостей будут автоматически извлечены менеджером пакетов вашей системы по умолчанию. Например:
Некоторые плагины Snapcraft имеют свои специфические параметры, которые могут потребоваться для работы вашего приложения. Поэтому стоит ознакомиться с соответствующими страницами справочника плагина:
snapcraft help plugin-name
Для приложений Go вы также должны указать go-importpath. Например, для простой программы Hello World получится такая конфигурация:
Вы можете пока оставить свой файл snapcraft.yaml открытым, чтобы добавить остальные настройки на следующем этапе.
Итак, вы определили базовую конфигурацию своего приложения Snap. Теперь давайте настроим безопасность и песочницу вашего приложения.
4: Защита приложения Snap
Приложения Snap предназначены для работы в изолированной среде, поэтому на этом этапе мы настроим песочницу для Snap. Для начала вам необходимо включить «песочницу» для вашего приложения, в Snapcraft она называется confinement.
Добавьте в файл snapcraft.yaml следующее:
Это включит песочницу для вашего приложения, запретив ему доступ к Интернету, другим запущенным Snaps и к самой хост-системе. Однако в большинстве случаев приложения должны иметь возможность обмениваться данными вне своей изолированной программной среды, (например, когда им требуется доступ к Интернету или право на чтение/запись в файловой системе).
Эти привилегии в контексте Snapcraft называются «интерфейсы», их можно предоставить вашему приложению Snap с помощью плагинов (Plugs). Плагины дают вам точный контроль над песочницей приложения и позволяют предоставить ему только необходимый доступ (по принципу наименьших привилегий).
Точный список требуемых интерфейсов зависит от вашего приложения. Вот некоторые из наиболее распространенных интерфейсов:
Полный список доступных интерфейсов можно найти в документации Snapcraft в разделе Supported Interfaces.
После того как вы определили все необходимые интерфейсы вашего приложения, вы можете присвоить их плагинам в файле snapcraft.yaml.
Например, в этой конфигурации приложение получит доступ к сети и домашней области пользователей:
Имя подключаемого плагина должно быть описательным, чтобы помочь пользователям определить его назначение.
Итак, вы включили «песочницу» своего приложения и настроили некоторые плагины для предоставления ограниченного доступа к системным ресурсам. Давайте закончим сборку приложения Snap.
5: Сборка и тестирование приложения Snap
Теперь, когда вы написали всю необходимую конфигурацию для приложения Snap, вы можете приступить к сборке и локальному тестированию своего итогового пакета.
Если вы тоже выполняли этот мануал на примере программы Hello World, ваш файл snapcraft.yaml теперь будет выглядеть примерно так:
Чтобы собрать приложение Snap, запустите команду snapcraft из каталога приложения:
Snapcraft автоматически запустит виртуальную машину (VM) и начнет сборку. После завершения Snapcraft закроется, и вы увидите нечто похожее:
Теперь вы можете установить приложение Snap локально, чтобы убедиться, что оно работает:
Аргумент –dangerous необходим, так как вы устанавливаете локальный Snap, который не был подписан.
После завершения установки вы можете запустить Snap, используя соответствующую команду. Например:
В данном случае команда вернет следующий вывод:
Вы также можете просмотреть политику песочницы вашего приложения Snap, чтобы убедиться, что привилегии были предоставлены правильно:
snap connections your-snap
Эта команда выведет список плагинов и интерфейсов:
Итак, вы собрали свой Snap-пакет. Теперь давайте опубликуем его.
6: Публикация приложения Snap
Теперь, когда вы создали и протестировали приложение Snap, пришло время выпустить его релиз в Snap Store.
Войдите в свою учетную запись Snap Developer с помощью приложения командной строки Snapcraft:
Следуйте дальнейшим инструкциям программы (нужно ввести свой адрес электронной почты и пароль).
Далее необходимо зарегистрировать имя приложения в Snap Store:
snapcraft register your-snap
После этого вы можете отправить собранный пакет Snap в магазин:
snapcraft push your-snap.snap
Вы увидите похожий вывод:
Preparing to push ‘your-snap_1.0_amd64.snap’.
Install the review-tools from the Snap Store for enhanced checks before uploading this snap.
Pushing ‘your-snap_1.0_amd64.snap’ [===================================================================================================] 100%
Processing. |
Ready to release!
Revision 1 of ‘your-snap’ created.
При появлении новых пакетов этого приложения на Snap store номер ревизии будет увеличиваться (отсчёт начитается с единицы). Это помогает различать сборки приложения Snap.
Наконец, вы можете выпустить свое приложение Snap в публичный доступ:
snapcraft release your-snap revision-number channel
Если вы впервые отправляете пакеты в Snap Store, номер ревизии будет равен 1. Если у вас несколько версий приложения на разных этапах разработки, вы можете выбрать канал stable, candidate, beta или edge.
Например, следующая команда выпустит версию 1 программы Hello World на канале stable:
snapcraft release helloworld 1 stable
Вы увидите такой вывод:
Track Arch Channel Version Revision
latest amd64 stable 1.0 1
candidate ^ ^
beta ^ ^
edge ^ ^
The ‘stable’ channel is now open.
Теперь вы можете найти свое приложение в Snap Store и установить его на любое из ваших устройств.
Заключение
В этом мануале вы научились собирать и публиковать приложения в формате Snap.
Если вы хотите узнать о Snap больше, изучите Snap Store или почитайте Snapcraft YAML Reference, где вы сможете определить дополнительные атрибуты для вашей конфигурации Snap.
Если вы хотите продолжить изучение разработки в Snap, почитайте о внедрении Snap Hooks, которые позволяют Snaps динамически реагировать на системные изменения (обновления или настройки политики безопасности).