Согласно страница Debian Wiki в формате репозитория :
Эти поля необязательны. Они могут отображаться пользователю с помощью инструмента управления пакетами или использоваться для закрепления. Предполагается, что любой репозиторий , опубликованный для использования другими пользователями, заполнял значимую информацию в этих полях, чтобы пользователь мог различать разные репозитории .
- Описание
- Источник
- Метка
- Версия
- Набор
- Кодовое имя
В репозиториях Debian индексы хранятся в каталоге с именем после набора или кодового имени (на самом деле один символически связан с другим). Однако в файле выпуска может быть указано другое расположение.
Эти поля определяют структуру репозитория и должны содержать что-то значимое для пользователя. В Debian эти поля могут содержать строчные буквы, числа,
-
и_
. Другие символы (например, прописные буквы) также должны работать, но эти поля используются для путей к файлам , поэтому использование специальных символов, которые могут нуждаться в особой обработке в URI или файловой системе, не рекомендуется. .
- Компоненты
- Архитектуры
Эти поля являются чисто функциональными и используются в основном для внутренних целей инструментами упаковки .
- Дата
- Действителен до
- MD5Sum, SHA1, SHA256
- NotAutomatic и ButAutomaticUpgrades
Необходимые поля:
Их достаточно для плоские макеты ( deb http://example.org path /
) Для архивов официального стиля ( deb http://example.org stable main
) дополнительное поле требуется:
Цитирование простое, вы можете использовать одинарные кавычки вместо двойных:
EGO_BUILD_FLAGS='-ldflags "-X main.buildVersion=0"'
Но проблема не в этом:
$ go build -x ${EGO_BUILD_FLAGS} github.com/g4s8/gitstrap/cmd/gitstrap
invalid value "\"-X" for flag -ldflags: missing =<value> in <pattern>=<value>
usage: go build [-o output] [-i] [build flags] [packages]
Run 'go help build' for details.
Проблема в том, что вы передаете содержимое переменной как одно значение. Посмотрите, что произойдет, если вы запустите это сset -x
:
$ set -x
$ go build -x ${EGO_BUILD_FLAGS} github.com/g4s8/gitstrap/cmd/gitstrap
+ go build -x -ldflags '"-X' 'main.buildVersion=0"' github.com/g4s8/gitstrap/cmd/gitstrap
invalid value "\"-X" for flag -ldflags: missing =<value> in <pattern>=<value>
usage: go build [-o output] [-i] [build flags] [packages]
Run 'go help build' for details.
Самое простое решение — удалить -ldflags
из вашей переменной и сохранить только те значения, которые вы хотите передать с помощью -ldflags
.Затем вы можете использовать свою переменную по своему усмотрению:
EGO_BUILD_FLAGS='-X main.buildVersion=0'
go build -x -ldflags ${EGO_BUILD_FLAGS} github.com/g4s8/gitstrap/cmd/gitstrap
Если это невозможно, вместо этого можно использовать массив:
EGO_BUILD_FLAGS=('-ldflags' '-X' 'main.buildVersion=0')
go build -x "${EGO_BUILD_FLAGS[@]}" github.com/g4s8/gitstrap/cmd/gitstrap
Наконец, можно было просто не заключать в кавычки значения, которые вы установили в переменной:
EGO_BUILD_FLAGS='-ldflags -X main.buildVersion=0'