私がこれを知りたい理由:
現在、ドッカーイメージの配布時にGPLに準拠できるように、apt-get sourceを使用してDebianベースのドッカーイメージのすべてのパッケージのソースコードを取得しています。
私はいくつかのドッカーイメージがあり、アルパインベースのドッカーイメージを使用したいのですが、これらのドッカーイメージからパッケージを構築するためのソースコードを取得する方法がわかりません。
これまで私が見つけたもの:
Alpine Linuxに同等のapt-getソースコードがある場合、これは問題ではありません(文書APKソースオプションへの言及はありません)
これGithubページスクリプトとパッチだけが含まれており、正確なソースコードはありませんが、ビルドスクリプトはアップストリームからソースコードを取得するようです。
ドッカーイメージにいくつかのGPLライセンスバイナリを配布するため、ソースコードをどこかに提供する必要があります。
アルパインドッカーイメージパッケージを構築するために使用されるソースコードを(正確に)取得するには?
答え1
Alpinesパッケージマネージャには、ソースコマンド()APK
と同じ機能はありません。dpkg
apt-get source <PACKAGE_NAME>
apk
Alpine Linuxにインストールされているパッケージと一致する正確なソースコードを取得するには、alpine-sdk
コマンドを組み合わせて使用できます。
Alpine Linuxにインストールされているパッケージの正確なソースコードを入手する手順:
インストールされているすべてのパッケージのリストを取得します。
apk info
alpine-sdkのインストール(詳細Alpine Wikiを読む):
apk --update add alpine-sdk
aportsで現在のアルパインバージョンを複製します。
git clone --depth 1 --branch v3.13.1 git://git.alpinelinux.org/aports
インストールされているパッケージを繰り返して、aportsフォルダ内の正しいフォルダを見つけます(パッケージのバージョンが同じで
apk version <PACKAGE_NAME>
あることに注意してください<PACKAGE_NAME>-<PACKAGE_BUILD_VERSION>-<PACKGAE_RELEASE_VERSION>
)。パッケージのソースコードを入手する(Alpine関連のパッチファイルと設定ファイルを含む)
(オプション)ソースファイルのカスタムターゲットを設定できます。
export SRCDEST="/path/to/my/custom/src/destination"
それ以外の場合は、現在のパッケージフォルダにsrcフォルダが作成されます。パッケージ名と一致するフォルダ(パッケージ
aports/main/git
の場合など)でrootまたは通常のユーザーとして実行します(これはスクリプトで参照されているソースファイルを取得します)。git
abuild -F fetch verify
abuild fetch verify
APKBUILD
GPLライセンスコードを含むパッケージ:これに準拠するには、
GPL
取得したソースファイルとAPKBUILD
スクリプト自体を提供する必要があります。また、スクリプト変数にリストされているパッケージのソースファイルとスクリプトを提供する必要がありますAPKBUILD
(ほとんどの場合、これらのパッケージはランタイム依存関係のサブパッケージです(例:6を参照))。makedepends
APKBUILD
openssl-dev
openssl
この問題依存関係情報GPL
とビルド。
すべてのパッケージにaportsに独自のフォルダがあるわけではありません。場合によっては、リストされたパッケージが
apk info
他のパッケージのサブパッケージである可能性があるためです。この場合、コマンドを使用して取得
.PKGINFO
できるファイルの元の変数が参照するパッケージのソースコードを取得する必要があります。apk fetch <sub-packagename>