Использование ls
из GNU coreutils (по умолчанию в большинстве систем Linux):
$ ls -v -1
При этом имена файлов будут перечислены в одном столбце (-1
), отсортированном с использованием естественного порядка сортировки чисел в имени файла ("сортировка версий",-v
). Это предполагает, что все имена файлов имеют одинаковую строку префикса до фактического числа (anacovaux_
, например ).
Для систем без GNUls
:
$ print '%s\n' * | sort -t '_' -k2,2n
Это позволит отсортировать имена по номеру после первого символа _
в имени. Опять же, предполагается, что префикс имени файла является постоянным (это решение полностью игнорирует префикс до первого_
).
Общий принцип упаковки заключается в том, что вы не должны делать каких-либо предположений о системе, которые не объявлены в конфигурации упаковки. Это включает в себя многое :пакеты, необходимые для сборки, пакеты, необходимые для выполнения, учетные записи (, необходимые пользователя или группу ), необходимые разрешения и т. д. В противном случае вы можете обнаружить, что файл спецификации, который вы написал может построить на вашей системе снежинка, но не в чистой среде. И даже если он будет построен, он может не установиться. И даже если он будет установлен, он может работать не так, как ожидалось.
Таким образом, дистрибутивы могут использовать автоматизированные системы сборки, в которых специалист по сопровождению просто должен загрузить конфигурацию упаковки, а система сборки сделает все остальное. Пакеты, построенные таким образом, конечно, намного надежнее. Поскольку все, что им требуется, указано в упаковке, маловероятно, что их установка сломает систему пользователя.
Вы можете указать rpmbuild, где используются ваши файлы --define '_builddir <Your_Root>'
Вам не нужно запускать его с другой учетной записью, хотя я думаю, что это хорошая практика. Надеюсь, это полезно. Эран.
Both of these instructions encourage building an RPM on a separate account.
Я не читаю документацию Fedora таким образом; для меня это говорит о том, что , если вы хотите , вы можете использовать отдельную учетную запись для выполнения своей работы по упаковке, и это объясняет, что вам нужно сделать, чтобы это заработало. Он не говорит, что вы должны это делать, и даже не поощряет вас к этому.
Я использую свой основной аккаунт для работы с пакетами. Однако я гарантирую, что мои требования к сборке выполнены, запустив mock
сборки (и, конечно же, используя Koji или наш внутренний эквивалент ).