基本的なAlpine Linux Dockerイメージパッケージを構築するために使用されるソースコードを取得する方法は?

基本的なAlpine Linux Dockerイメージパッケージを構築するために使用されるソースコードを取得する方法は?

私がこれを知りたい理由:

現在、ドッカーイメージの配布時にGPLに準拠できるように、apt-get sourceを使用してDebianベースのドッカーイメージのすべてのパッケージのソースコードを取得しています。

私はいくつかのドッカーイメージがあり、アルパインベースのドッカーイメージを使用したいのですが、これらのドッカーイメージからパッケージを構築するためのソースコードを取得する方法がわかりません。

これまで私が見つけたもの:

Alpine Linuxに同等のapt-getソースコードがある場合、これは問題ではありません(文書APKソースオプションへの言及はありません)

これGithubページスクリプトとパッチだけが含まれており、正確なソースコードはありませんが、ビルドスクリプトはアップストリームからソースコードを取得するようです。

ドッカーイメージにいくつかのGPLライセンスバイナリを配布するため、ソースコードをどこかに提供する必要があります。

アルパインドッカーイメージパッケージを構築するために使用されるソースコードを(正確に)取得するには?

答え1

Alpinesパッケージマネージャには、ソースコマンド()APKと同じ機能はありません。dpkgapt-get source <PACKAGE_NAME>

apkAlpine Linuxにインストールされているパッケージと一致する正確なソースコードを取得するには、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の場合など)でrootまたは通常のユーザーとして実行します(これはスクリプトで参照されているソースファイルを取得します)。gitabuild -F fetch verifyabuild fetch verifyAPKBUILD

    3. GPLライセンスコードを含むパッケージ:これに準拠するには、GPL取得したソースファイルとAPKBUILDスクリプト自体を提供する必要があります。また、スクリプト変数にリストされているパッケージのソースファイルとスクリプトを提供する必要がありますAPKBUILD(ほとんどの場合、これらのパッケージはランタイム依存関係のサブパッケージです(例:6を参照))。makedependsAPKBUILDopenssl-devopensslこの問題依存関係情報GPLとビルド。

  6. すべてのパッケージにaportsに独自のフォルダがあるわけではありません。場合によっては、リストされたパッケージがapk info他のパッケージのサブパッケージである可能性があるためです。

    この場合、コマンドを使用して取得.PKGINFOできるファイルの元の変数が参照するパッケージのソースコードを取得する必要があります。apk fetch <sub-packagename>

関連情報