
そのライブラリ、本当に使って大丈夫?初心者でもわかるライセンス選びの基本ルール
こんにちは、アールグレイです。
みなさん、コーディングするときに「npm install」とか「pip install」って、ついついOKボタンを連打してませんか?(笑)
実は私も最初はそうだったんです。AIがライブラリを提案してくれて、便利そうだから即座にインストール。
でも後から知ったんですが、これって実は結構危険なことだったりするんです! 今回は、ライブラリのライセンスについて、初心者の方でもわかるように解説していこうと思います。
「えー、法律とか難しそう...」って思わないでください!基本さえ押さえれば、そんなに怖いものじゃありませんから。
npm installって実は何をしてるの?
まずはnpm installコマンドが何をしているのか、簡単に説明しますね。
npm installは、他の人が作って公開してくれているソースコード(ライブラリ)をダウンロードしてきて、自分のプロジェクトで使えるようにするコマンドなんです。
これって、考えてみるとすごいことなんですよ。
世界中の開発者が時間をかけて作った便利な機能を、たった一行のコマンドで使えるようになるんですから!
でも、つまりこれって他人の作品を自分のプロジェクトに組み込んでるってことなんですね。
多くの人が「必要なんだなー、オッケー」みたいな感じで気楽にnpm installを連打してるけど、実はその背後にはちゃんとしたルールがあるんです。
そして、その「他人の作品」には、作者が決めた利用条件があるんです。これが「ライセンス」と呼ばれるものです。
「商用利用してもいいよ」「改変してもOK」「でも著作権表示は残してね」みたいな感じで、作者が「こういう条件を守って使ってください」と決めたルールなんです。
例えば、あなたが家を貸すときに「ペット可」「楽器演奏OK」「でも騒音は控えめに」みたいな条件を付けるのと似てるかもしれませんね。
ライセンスって実際どんな種類があるの?
ライブラリのライセンスって、実はめちゃくちゃたくさんの種類があるんです。
でも、実際によく見かけるのは大きく3つのタイプに分けられます。
1. パーミッシブ系(使いやすい!)
代表例:MIT、Apache-2.0、BSD
これらは一番使いやすいライセンスです。
商用利用も改変も再配布も、基本的に何でもOK!
MITライセンスは、特にnpm ecosystemで圧倒的に人気があります。
React、Vue.js、Express.jsなど、有名なライブラリの多くがMITライセンスを採用しているんです。
Apache-2.0は、Google、Facebook、Microsoftなどの大手IT企業がよく使うライセンスです。
MITとの大きな違いは、特許に関する明確な許諾が含まれている点。これによって、特許訴訟のリスクを減らすことができるんです。
BSDライセンスは、歴史が古く、特にシステム系のライブラリでよく見かけます。
2-Clause(2条項)と3-Clause(3条項)のバリエーションがあります。
やること
- 著作権表示だけは消さないで(「このライブラリは○○さんが作りました」みたいな)
- Apache-2.0の場合は、NOTICEファイルも一緒に同梱する
- ライセンス全文を配布物に含める(通常はLICENSEファイル)
迷ったらこれ!っていう感じで、特にMITとApache-2.0は安心して使えます。
企業の法務部門でも「これなら問題ない」と太鼓判を押してもらいやすいライセンスです。
2. コピーレフト系(条件付き)
弱コピーレフト:LGPL、MPL
LGPL(Lesser GPL)は、主にライブラリ向けのライセンスです。
例えば、有名なところだとGNU C Library(glibc)なんかがLGPLです。
動的リンク(.dllや.soファイルとしてリンク)かつライブラリ自体を改変していない場合は、アプリ本体をクローズドソースにできます。
ただし、LGPLライブラリを改変した場合や静的リンクした場合は、より厳しい条件が適用される場合があります。
MPL(Mozilla Public License)は、Firefoxブラウザで有名なMozillaが作ったライセンス。ファイル単位でのコピーレフトが特徴で、改変したファイルだけを公開すればOKです。
強コピーレフト:GPL、AGPL
これが一番注意が必要!なライセンスです。
GPLライセンスは、Linux Kernelでも使われている有名なライセンスですが、商用開発では慎重になる必要があります。
GPLライブラリを使った場合、そのプロジェクト全体を同じGPLライセンスで公開する義務が発生する可能性があるんです。
AGPL(Affero GPL)は、さらに厳しくて、配布しなくてもSaaSでサービス提供するだけでソースコード公開義務が発生します。
MongoDB(2018年にSSPLに変更)、Neo4j、Elasticsearch(2021年にElastic License/SSPLに変更、2024年に一部AGPL復帰)などが過去にAGPLを採用していました。
実際に海外で大手企業がGPLライセンス違反で敗訴した事例があるので、企業での利用は特に慎重になる必要があります。
3. "ソース可視"系(要注意)
代表例:SSPL、BUSL、Elastic Licenseこれらは「オープンソース」ではありません。
ソースコードは公開されていて読むことはできますが、使い方に大きな制限があります。
SSPL(Server Side Public License)は、MongoDBが作ったライセンスです。クラウドプロバイダー(AWS、Google Cloud、Azureなど)が商用サービスとして提供することを制限する目的で作られました。
BUSL(Business Source License)は、一定期間(通常3-4年)後に自動的にオープンソースライセンスに変更されるという特殊なライセンスです。MariaDB、CockroachDBなどが採用しています。
Elastic Licenseは、Elasticsearch社が作ったライセンスで、AmazonがElasticsearchの商用サービス(Amazon Elasticsearch Service)を提供することを防ぐために導入されました。
これらのライセンスは、「オープンソース」を名乗っていても、実際には商用利用やクラウド提供に大きな制限があります。
OSI(Open Source Initiative)も「これはオープンソースではない」と明確に否定しているので、注意が必要です。
実際にトラブルになった事例があるの?
実はあるんです!
海外では実際にGPLライセンス違反で企業が敗訴した事例があります。
具体的には、2007年にドイツのミュンヘン裁判所で、Skype社がGPL違反で敗訴した事例があります。
SkypeがNetfilter/iptablesというGPLソフトウェアをソースコード公開せずに配布したため、違反とされました。
また、2017年にはArtifex Software社(Ghostscriptのメーカー)がHancom社を提訴し、2018年に裁判外和解となった事例もあります。
HancomがGhostscriptを埋め込みながらソース公開義務を果たさなかったことが争点でした。
「知らなかった」「開発チームが勝手にやった」では法的には通用しません。
特に上場企業などでは、コンプライアンス違反として大問題になる可能性があります。
個人レベルなら見逃されることも多いですが、会社のサービスとなると話は別。
だからこそ、今のうちから正しい知識を身につけておくことが大切なんです。
用途によってどう使い分けるの?
実際に使うときは、何の目的でそのコードを使うかによって判断します。
社内だけで使う場合
- 基本的にどのライセンスでもOK
- ただし、AGPL/SSPLはSaaS提供でも義務が発生するので注意
外部配布やアプリストア公開
- MIT/Apache/BSDがおすすめ
- GPLv3は一部のアプリストア(特にApple App Store)の規約と衝突する場合があるので注意が必要
SaaSやWebサービス提供
- AGPLは絶対に避ける(サーバー側のソース公開義務が発生)
- SSPLも商用クラウド提供に制限があることが多い
非エンジニアでも3分でできる安全チェック
AIでコーディングする時代だからこそ、非エンジニアの方も知っておいて損はありません!
Claude CodeやGitHub Copilot、ChatGPTなどのAIツールが、勝手にライブラリを提案してインストールしてくれることがよくありますよね。
でも、AIも完璧じゃないので、ライセンス的に危険なライブラリを提案してしまうことがあるんです。
でも大丈夫!AIに聞けば簡単にチェックできます。
基本的な安全確認:AIに丸投げでOK!
AIツール(ChatGPT、Claude、Copilotなど)に以下を聞くだけ。
- 「このライブラリのライセンスは何ですか?商用利用しても大丈夫ですか?」
- 「package.json(またはrequirements.txt)の中身を見て、危険なライセンス(GPL、AGPL、SSPLなど)はありますか?」
AIが「MITライセンスなので安全です」「GPLライセンスなので商用利用には注意が必要です」みたいに教えてくれます。 簡単な判定基準
- ✅ 安全:MIT、Apache-2.0、BSD → AIが「安全」と言えば使ってOK
- 🚫 要注意:GPL、AGPL、SSPL → AIが「注意」と言ったら避けるのが無難
迷ったときも、とりあえずAIに相談!
- 「このライブラリを商用サービスで使っても大丈夫?」
- 「iOSアプリで配布予定だけど、このライセンスは問題ない?」
- 「会社のプロジェクトで使いたいんだけど、法的に問題ない?」
こんな風に普通の言葉で聞けば、AIが分かりやすく答えてくれます。難しいコマンドを覚える必要はありません!
最終チェック:公開前に確認
- 秘密情報(APIキーやパスワード)が含まれてない?
- アプリの場合、「設定 > ライセンス」画面でオープンソースライブラリのクレジット表示をしてる?
これだけで十分です!
まとめ:迷ったらMIT/Apache-2.0を選ぼう
ライセンスの世界は奥が深くて、一度調べ始めると沼にハマってしまいます(笑)。
実際、私も最初は「こんなに種類があるのか...」って圧倒されました。
でも、現実的にはよく使われるライセンスはそんなに多くないんです。
今日から実践できる基本ルール。
- 迷ったらMIT/Apache-2.0を選ぶ(多くの場合で安全だが、著作権表示は必須)
- GPL/AGPLは慎重に判断する(商用・SaaSなら避ける)
- SSPL/BUSLは基本的に避ける(オープンソースじゃない)
- 依存関係も含めてチェックする(自動ツール活用必須)
- 自動スキャンツールを導入する(CI/CDに組み込むのがベスト)
- チーム内でのライセンスポリシーを決めておく
特にAIコーディングが主流になってきた今、「AIが勝手に追加したライブラリ」にも注意が必要です。
非エンジニアの方も「そういうルールがあるんだな」と認識しておくだけで、将来のトラブルを避けられます。
何か困ったときは、必要な分だけ調べる。完璧を目指さず、「最低限の安全」を確保する。
それくらいの気持ちで十分だと思います。
皆さんも、今度ライブラリをインストールするときは、ちょっとだけライセンスを気にかけてみてくださいね!
「npm install」の前の一呼吸が、将来の大きなトラブルを防いでくれるかもしれません。
この記事のポイント
- ✓npm installの前にライセンス確認は必須!気軽にOKボタンを押すのは危険
- ✓MIT/Apache-2.0/BSDは比較的安全、GPL/AGPL/SSPLは用途によって要注意
- ✓Stack OverflowのコードはCC BY-SAなので商用リポジトリには避ける
- ✓依存関係の依存(トランジティブ依存)も含めて全体をチェックする
- ✓非エンジニアでも3分で安全チェック可能:用途確認→ライセンス確認→自動スキャン
- ✓AIコーディング時代こそライセンス意識が重要、迷ったらMIT/Apache-2.0を選ぶ