snapcraft: Как я могу получить snapname-appname вместо snapname.appname

Вопрос или проблема

При публикации нескольких приложений в одном снапе, snapcraft добавляет префикс “snapname.” к имени приложения, чтобы конечный пользователь видел исполняемое имя “snapname.appname”.

Мой снап – это коллекция из 7 утилит командной строки. Все с общим префиксом, скажем, “snapname”.

Но их имена следующие:

snapname-appname

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

Мои утилиты также будут опубликованы через .deb и .rpm и так далее, поэтому я хотел бы, чтобы наименования были единообразными, иначе документация будет запутанной.

Существует ли способ обойти, по-видимому, фиксированную схему добавления префиксов с точкой?

Вам нужен псевдоним. Вы можете создать их вручную, но это не то, что вам действительно нужно: вы хотите псевдонимы, к которым имеют доступ ваши пользователи. В этом случае вам нужно запросить их, создав новый пост в категории store-requests форума. Почему? Чтобы процитировать вышеупомянутое:

Поскольку нет гарантии, что псевдоним будет уникальным, и потенциальные конфликты создают небольшие неудобства, стандартные псевдонимы снапа активируются только после простого публичного процесса рассмотрения.

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

Ответ или решение

Для решения проблемы с именованием приложений в рамках одного snap, где вместо желаемого формата "snapname-appname" получается "snapname.appname", существует несколько возможностей, о которых следует упомянуть.

Понимание проблемы

Когда вы публикуете несколько приложений внутри одного snap, система автоматически добавляет префикс имени snap к имени каждого приложения, используя точку в качестве разделителя. Это может вызвать путаницу, особенно если ваши утилиты_cli имеют общее основание и вы хотите сохранить консистентное именование во всех пакетах, таких как .deb и .rpm. Использование дефиса "-" более распространено для утилит в стандартной среде Linux и облегчает понимание для пользователей.

Возможные решения

  1. Использование алиасов:
    Чтобы обойти проблему с префиксом, вы можете создать алиасы для ваших утилит с нужным именованием. Алиасы позволяют вам пользователям вызывать ваши программы с помощью желаемого формата. Для этого вы можете воспользоваться следующими шагами:

    • Создайте пост в категории store-requests форума Snapcraft и запросите создание алиасов. В этом запросе укажите, что вы желаете получить алиасы в формате "snapname-appname".
    • Имейте в виду, что все алиасы проходят процесс общественного ревью. Это делается для обеспечения уникальности имен и предупреждения возможных конфликтов в будущем.
  2. Используйте скрипты-обертки:
    В качестве временной меры вы можете создать скрипты-обертки, которые будут запускать ваши CLI утилиты с нужными именами. Эти скрипты могут легко устанавливаться в каталог, который находится в пути поиска исполняемых файлов, и будут выглядеть аналогично:

    #!/bin/bash
    snapname.appname "$@"

    Это решение не идеально, так как требует дополнительных манипуляций, но может быть полезным, пока вы ожидаете утверждения ваших алиасов.

  3. Обновление документации:
    Ваша документация должна ясно указывать на разницу между именами в snap и другими пакетами. Четко укажите, что для использования утилит в snap необходимо использовать формат с точкой, в то время как в других установках (например, .deb или .rpm) имена имеют желаемый вид с дефисом.

Заключение

Следуя приведенным рекомендациям, вы сможете достичь желаемого формата имен для ваших CLI утилит в Snapcraft. Использование алиасов представляется наилучшим способом решения данной проблемы, так как оно обеспечит легкость и единообразие в использовании ваших приложений как в snap, так и в других дистрибутивах. Также учитывайте, что создание поста в форуме требует времени, поэтому планируйте свои действия заранее.

Надеюсь, это поможет вам добиться желаемого результата и минимизировать путаницу для пользователей ваших утилит.

Оцените материал
Добавить комментарий

Капча загружается...