31 lines
3.0 KiB
Markdown
31 lines
3.0 KiB
Markdown
# Общие рекомендации
|
||
|
||
Пакеты должны содержать название(я) того, что они содержат, в массивах `provides` и `conflicts`. Таким образом, пользователи могут устанавливать их, не зная полного названия пакета. Например, существуют два пакета `admc` для ADMC: admc и admc-git. Оба из них имеют массивы `provides` и `conflicts`, указывающие на две команды, которые они устанавливают. Это означает, что если пользователь хочет установить *ADMC*, ему просто нужно ввести `alr in admc`, и ALR предложит ему выбрать, какой из них он хочет установить.
|
||
|
||
## Бинарные пакеты
|
||
|
||
Пакеты, которые устанавливают загруженные и установленные предварительно скомпилированные бинарные файлы, должны иметь суффикс `-bin`.
|
||
|
||
## Пакеты Git
|
||
|
||
Пакеты, которые собирают и устанавливают программы из исходного кода, клонируемого непосредственно из Git, должны иметь суффикс `-git`.
|
||
|
||
Версии этих пакетов должны состоять из количества ревизий, за которым следует текущая ревизия, разделенные точкой. Например: `183.80187b0`. Обратите внимание, что в отличие от *AUR*, в начале нет `r`. Это связано с тем, что некоторые менеджеры пакетов отказываются устанавливать пакеты, номера версий которых не начинаются с цифры.
|
||
|
||
Этот номер версии можно получить с помощью следующей команды:
|
||
```sh
|
||
printf "%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
|
||
```
|
||
|
||
Функция [version()](build-scripts.md#version) для таких пакетов должна использовать предоставленную ALR функцию [git-version](build-scripts.md#git-version), следующим образом:
|
||
|
||
```sh
|
||
version() {
|
||
cd "$srcdir/$name"
|
||
git-version
|
||
}
|
||
```
|
||
Это использует встроенную реализацию Git от alr, что гарантирует, что пользователю не нужно устанавливать Git на свою систему для установки пакетов `-git`.
|
||
## Прочие пакеты
|
||
|
||
Пакеты, которые загружают исходники для конкретной версии программы, не должны иметь никаких суффиксов, даже если эти исходники загружаются из Git. |