Как получить исходный код, используемый для сборки пакетов базового образа докера alpine linux?

Если вы не против изменить тип файловой системы и выполнить полное резервное копирование / восстановление данных, можно решить «нулевые накладные расходы», создав пул ZFS на вашем диске 2 ТБ, а затем по одной файловой системе для каждого пользователя.

Команда « zfs list » затем сообщит вам в реальном времени об использовании диска для каждого пользователя, не требуя включения дисковой квоты. ZFS также позволит включить дисковые квоты, если вы хотите ограничить использование пользователя по номиналу, резервирование, если вы хотите гарантировать пользователю некоторое пространство по номиналу, моментальные снимки, чтобы разрешить откаты и доступ к файлам в обратном времени, сжатие для экономии места на диске и в целом повышения производительности .

Большинство и, вероятно, все эти функции также возможны с btrfs

1
25.01.2019, 23:46
1 ответ

Менеджер пакетов Alpines APKне имеет эквивалента исходной команде dpkg(apt-get source <PACKAGE_NAME>).

Чтобы получить точный исходный код, соответствующий установленным пакетам в alpine linux, вы можете использовать комбинацию команд apkи alpine-sdk.

Шаги для получения точного исходного кода установленных пакетов в alpine linux:

  1. Получить список всех установленных пакетов:

    apk info
    
  2. Установите alpine -sdk (для получения дополнительной информации прочитайте alpine wiki):

    apk --update add alpine-sdk
    
  3. Клонируйте вашу текущую альпийскую версию из aports:

    git clone --depth 1 --branch v3.13.1 git://git.alpinelinux.org/aports
    
  4. Просмотрите установленные пакеты и найдите нужную папку. в папке aports (будьте осторожны, версия пакета, которую вы можете получить с помощью apk version <PACKAGE_NAME>, равна<PACKAGE_NAME>-<PACKAGE_BUILD_VERSION>-<PACKGAE_RELEASE_VERSION>).

  5. Получить исходный код пакета (включает специальные файлы исправлений и файлы конфигурации Alpine)

    1. (Необязательно )вы можете установить пользовательское место назначения для исходных файлов с помощью export SRCDEST="/path/to/my/custom/src/destination", иначе будет создана папка src в текущей папке пакета

    2. В папке, соответствующей имени пакета (, например. aports/main/gitдля пакета git)запустите abuild -F fetch verifyкак root или abuild fetch verifyкак обычный пользователь (это доставит исходные файлы, указанные в сценарии APKBUILD)

    3. Пакеты, содержащие лицензионный код GPL :Чтобы соответствовать GPL, вы должны предоставить загруженные исходные файлы и сам скрипт APKBUILD. Вы также должны предоставить исходные файлы и сценарий APKBUILDдля пакетов, перечисленных в переменной makedependsсценария APKBUILD(. openssl-devявляются подпакетами -(, см. пункт 6 )зависимостей времени выполнения, например.openssl)см. этот вопрос о GPLи построить зависимости.

  6. Не у каждого пакета есть своя папка в апортах,потому что иногда пакет, указанный в apk info, будет подпакетом другого упаковка.

    В этом случае вам необходимо получить исходный код пакета. ссылка на исходную переменную в файле .PKGINFO, который вы можете получить с помощью команды apk fetch <sub-packagename>.

7
28.01.2020, 00:19

Теги

Похожие вопросы