web-dev-qa-db-ja.com

インストールされている各アプリケーション/パッケージのライセンスを確認するにはどうすればよいですか?

Ubuntu-15.10を使用しています。バニラのインストール以外にも多くのアプリケーションをインストールしました。

ここで、GPLまたはサードパーティのライセンス(Fluendoなど)でライセンスされているインストール済みパッケージの数を調べたいと思います。

これを見つける方法はありますか?または、インストールされている各アプリケーションのすべてのライセンスを手動で確認する必要がありますか?

編集:

次のスニペットは、インストールされているさまざまなライセンスファイルの名前をリストするために使用しました。

find /usr/share/doc -type f -name copyright -exec grep "License\:" {} + | cut -f3 -d: | sort -u
4
SHW

パッケージのライセンスは/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ライセンスのファイルの場合に当てはまります。

4
Stephen Kitt

ソフトウェアのライセンス情報のほとんどは、/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のファイルごとに複数のライセンスが含まれる場合があることに注意してください。

3
Pandya

次のコードは、Ubuntu15.04のさまざまなアプリケーションからインストールされているライセンスを一覧表示するのに役立ちます。

find /usr/share/doc -type f -name copyright -exec grep "License\:" {} + | cut -f3 -d: | sort -u
1
SHW