インストールするすべてのアプリケーション/パッケージのライセンスをどのように見つけますか?

インストールするすべてのアプリケーション/パッケージのライセンスをどのように見つけますか?

Ubuntu-15.10を使用しています。通常のインストールに加えて、多くのアプリケーションをインストールしました。

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

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

編集する:

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

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

答え1

ソフトウェアパッケージのライセンスはに記載されています/usr/share/doc/${package}/copyright。このファイルは、多くのパッケージが使用するパッケージのマスターライセンスを指定するために必要です。機械可読copyrightファイルソースパッケージの各ファイルのライセンスを一覧表示します。

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はさまざまな検索方法を提供しますすべての Debiancopyrightファイル;これはラインですそのパッケージがコンピュータで読み取り可能な形式を使用している場合は、個々のファイルのライセンスを検索してください。 (該当する行のライセンスは文書化されていません。ここにコピーするのではなく、リンクだけを歩きます。)

これらのcopyrightファイルはソースパッケージのライセンスを記録するため、バイナリパッケージに提供されていないファイルを記録する可能性が高く、バイナリパッケージのライセンスには影響しません。たとえば、GPLライセンスがある場合です。ファイル、このファイルは、GPLではなくライセンスソフトウェアパッケージのビルド中にのみ使用されます。

答え2

ほとんどのソフトウェアのライセンス情報は以下にあります。/usr/share/doc/pkg-name/copyright

使用されるプログラムの数を大まかに推定できますGPL

  • grep -l GPL /usr/share/doc/*/copyright

    ただし、grep通常のファイルではなくリンクされたファイルも含まれます。したがって、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。そのファイルを計算したくない場合は、maxdepthfind を使用して指定できます。

はい(私のシステム):

$ 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

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

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

答え4

私はCentOSシステムのみを持っており、次のコマンドを使用してパッケージ名とライセンス情報を表示できます。

$ rpm -qa --qf "%{name}: %{license}\n"
...
ncurses: MIT
cairo: LGPLv2 or MPLv1.1
dbus-python: MIT
media-player-info: BSD
dbus-x11: GPLv2+ or AFL
NetworkManager: GPLv2+
...

dpkg-query --licenseUbuntuシステムで同様の作業を実行できるはずです。

良いここ$ dpkg-query -f='${PackageSpec;-30}\t${Homepage}\n' -W "*"、各パッケージの情報の一部のみを表示するために使用されます。dpkg-queryそこからライセンスフォームを入手できるかどうかを確認するには、オプションを確認してください。

その他興味深い投稿これに関して問題は正確に議論される。

/usr/share/doc/*/copyright現在、機械が読み取り可能な情報をファイルとして提供するための努力が行われていますが、それに対するサポートは不十分です。

関連情報