Ubuntu-15.10を使用しています。バニラのインストール以外にも多くのアプリケーションをインストールしました。
ここで、GPLまたはサードパーティのライセンス(Fluendoなど)でライセンスされているインストール済みパッケージの数を調べたいと思います。
これを見つける方法はありますか?または、インストールされている各アプリケーションのすべてのライセンスを手動で確認する必要がありますか?
編集:
次のスニペットは、インストールされているさまざまなライセンスファイルの名前をリストするために使用しました。
find /usr/share/doc -type f -name copyright -exec grep "License\:" {} + | cut -f3 -d: | sort -u
パッケージのライセンスは/usr/share/doc/${package}/copyright
で説明されています。このファイルは、パッケージのメインライセンスを指定するために必要です。多くのパッケージは machine-読み取り可能copyright
file を使用します。これは、ソースパッケージ内のすべてのファイルのライセンスを一覧表示します。
機械可読ファイルの場合、ライセンスを導入するLicense:
行を使用できます。
awk '/^License:/ { print $2 }' /usr/share/doc/*/copyright | sort -u
/usr/share/common-licenses
に記載されているライセンスを探している場合は、copyright
ファイルでそれらの言及を探すことができます。 例:GPLまたはLGPLでライセンスされているパッケージの数をカウントするには:
grep -l GPL /usr/share/doc/*/copyright | wc -l
ソースパッケージの数のみをカウントするには、一意のファイルの数をカウントします(単一のソースパッケージから出荷されたバイナリパッケージには、まったく同じcopyright
ファイルがあるか、同じファイルにリンクしています)。
md5sum $(grep -l GPL /usr/share/doc/*/copyright) | sort -k1,1 -u | wc -l
Debsourcesは Debianのcopyright
ファイルすべて ;を検索するさまざまな方法を提供します。 これは1行です 単一のファイルのライセンスを取得します(パッケージが機械可読形式を使用している場合)。 (そのワンライナーのライセンスは文書化されていないので、ここにコピーするのではなく、リンクするだけです。)
copyright
ファイルはソースパッケージのライセンスを文書化しているため、バイナリパッケージで出荷されず、バイナリパッケージのライセンスに影響を与えないファイルを文書化する可能性があることに注意してください。これは、たとえばGPLライセンスのないファイルのビルド中にのみ使用されるGPLライセンスのファイルの場合に当てはまります。
ソフトウェアのライセンス情報のほとんどは、/usr/share/doc/pkg-name/copyright
で入手できます。
大まかに言うと、GPL
を使用して、次の方法でプログラムの数を見積もることができます。
grep -l GPL /usr/share/doc/*/copyright
ただし、grep
には、通常のファイルの代わりにリンクされているファイルも含まれます。したがって、私はusinf find
を次のように推奨します。
Sudo find /usr/share/doc -name copyright -type f -exec grep -l "GPL" '{}' \; | wc -l
/usr/share/doc/ca-certificates/examples/ca-certificates-local/debian/copyright
のようなファイルも含まれます。カウントしたくない場合は、findでmaxdepth
を指定できます。
例(私のシステム上):
$ grep -l GPL /usr/share/doc/*/copyright | wc -l
1949
$ Sudo find /usr/share/doc -name copyright -type f -exec grep -l "GPL" '{}' \; | wc -l
1889
ソフトウェアには、copyright
のファイルごとに複数のライセンスが含まれる場合があることに注意してください。
次のコードは、Ubuntu15.04のさまざまなアプリケーションからインストールされているライセンスを一覧表示するのに役立ちます。
find /usr/share/doc -type f -name copyright -exec grep "License\:" {} + | cut -f3 -d: | sort -u