私はパッケージを調べ、それに関するいくつかの統計を報告し、非フリーソフトウェアを含むすべてのパッケージを報告するプログラムを考えています。
もちろん、ディストリビューションには一般的に許可されているカーネルモジュール、ドライバ、その他のバイナリブロブを含める必要があります。検索範囲が広いほど良いです。
私はこの機能をFedoraにしたいのですが、ほとんどのディストリビューションで利用できるようになれば幸いです。
答え1
これは間接的な答えです。なぜシステムにフリーソフトウェアではなくソフトウェアがインストールされているのか理解できず、それについて知らないからです。確認したいと言って間違っているということではありませんが、そもそも本当にそうすべきかどうかしばらく止めて考えてみる必要があるかもしれません。
Fedoraでこの機能が欲しい
Fedoraリポジトリは「無料」と「非自由」に分かれています。デフォルトでは、無料リポジトリのみが使用されます。したがって、他のリポジトリを追加したことがない場合は、そのyum
リポジトリから何もインストールできません。
もちろん、ディストリビューションには一般的に許可されているカーネルモジュール、ドライバ、その他のバイナリブロブを含める必要があります。
バラよりこのページ。 Fedoraの唯一の例外は、特定のハードウェアを使用しない限り、不要な「バイナリファームウェア」です。あなたもこの事実を知っていると思いますが、大胆ではありません。
私は「ファームウェア」が技術的にデバイスにインストールされ、技術的にすでに存在していると思います。たとえば、あなたのBIOSはフリーフリーソフトウェアを実行します。そのレベルではできることはありません。このページのリンクから、Fedoraの「バイナリファームウェア」の説明を読むこともできます。
カーネル自体にはフリーコードではなくコードを含めることはできず、モジュールにしか現れません。 kernel.orgからソースコードをダウンロードして直接コンパイルすると、これは含まれていないようです。リヌスの態度(「私はそれらを受け入れますが、私はそれを支持したことがなく、好きではありませんでした」)は、非自由モジュールを許可することを意味します。そしてカーネルですが、Linux自体(kernel.orgなど)で配布される可能性はほとんどありません。排他ドライバーは独立して配布されます。これにより、ディストリビューションにはkernel.org以外の対応するドライバが含まれます(ただし、「禁止されたエントリ」ページによれば、Fedoraは少なくともデフォルトの「無料」リポジトリに排他的なドライバを明示的に含めません)。
オンラインでリストされているすべてを調べることができますlsmod
。すべてのバイナリブロブはモジュールでなければならないので、そこで見つけることができるようです。
Fedoraは、独自のカーネルを構築するために、そのソースパッケージを使用することをお勧めします。しかし、私は長年にわたってFedoraでVanilla kernel.orgソースの手で作られたカーネルを使用してきましたが、一度も問題はありませんでした。したがって、そうする意思があり、無料でないリポジトリを使用しない場合は、無料でないものをインストールしないでください。
答え2
カーネルとモジュールに関係なく
パッケージの並べ替え:
これはMageia / Redhatのようなシステムでテストされました。
1.すべてのパッケージで使用されているすべてのライセンスをインポートします。
rpm -qia | grep "License" | sort
2.あなたの要件に合わないライセンスを学ぶ
三。問題のあるライセンスを使用しているパッケージを確認してください。
rpm -qia | grep ": Problematic License" -A 15 -B 20
指示:
vrms(Debian用)や他の同様のツールは理論的には優れていますが、実際には役に立ちません。
ノート2:
今日では、プライバシー保護などを尊重する完全にオープンなシステムを確保することは困難ですが、それでも可能です。以下が必要です。
オープンソースBIOSを搭載したマシン*
magiaなどのような良いディストリビューションを入手してください。
すべてのパッケージとモジュールの確認
独自のカーネルコンパイル
注*オープンソースのBIOSを搭載したマシンは、一般市場には存在しませんが、まだオープンソースのBIOSを実行できることに感謝します。マスマーケットマシンと互換性がありますデフォルトのBIOSをフラッシュします。
最後に残った問題は、マシンチップにプログラムされたプライベートソースマイクロコードです。大規模な商業企業だけがハードウェアを作成しており、一部のソフトウェアソリューションを使用してプロセスでその機能を確認できるため、これを行うことはできません(これは単純なソリューションではありません)。
この関連カーネルツールに興味があるかもしれません。