ライブラリ、gemとは

# gemとは
>Rubyでは最初から数多くのライブラリが標準ライブラリとして用意されています。その中でも特に`利用頻度の高いライブラリは組み込みライブラリとして提供`されています。この章で紹介した文字列の組み込みライブラリではないライブラリもあります。例えば日付を扱うDateクラスがそうです。
>また、`有志の開発者が作成している外部ライブラリはgemと呼ばれる形式でパッケージング`されます。gemの利用方法は「12.8 gemとBundler」の節で説明します。ただし、本文の中では時々gemという用語が出てくるので、`「gem＝外部ライブラリ」`と理解するようにしてください。
>* 標準ライブラリ/組み込みライブラリ: インストール不要
>* gem(外部ライブラリ): 別途インストールが必要
p63

> Rubyのライブラリはgemという形式でパッケージングされます。さらに、作成したgemはRubyGems.orgというサイトにアップロードすることができます。
p425

https://gihyo.jp/book/2017/978-4-7741-9397-7

### 標準ライブラリ
>組み込み / CUI / 文字コード / コマンドライン / データベース / 日付・時間 / デザインパターン / 開発 / ファイル / ファイルフォーマット / GC / 入出力 / 数学 / ネットワーク / テキスト / スレッド / Unix / Windows / その他
組み込み

https://docs.ruby-lang.org/ja/latest/library/index.html

### 組み込みライブラリ
>組み込みライブラリは Ruby 本体に組み込まれているライブラリです。このライブラリに含まれるクラスやモジュールは、 require を書かなくても使うことができます。

https://docs.ruby-lang.org/ja/latest/library/_builtin.html

### 同じプラットフォームのrubyとgemでしか動作しない
>Platforms are based on the CPU architecture, operating system type and sometimes the operating system version. Examples include “x86-mingw32” or “java”. 
The platform indicates the gem only works with a ruby built for the same platform. RubyGems will automatically download the correct version for your platform. See gem help platform for full details.

https://guides.rubygems.org/what-is-a-gem/#:~:text=Platforms%20are%20based,for%20full%20details.

### プラットフォームごとにRubyの動作環境が違う
>Ruby は様々な環境で動作するよう各方面の有志によって移植されています。以下、Ruby の動作環境について OS や 開発環境で大別して説明します。
>
>インストールやコンパイルに関しては、「Rubyのインストール」(https://www.ruby-lang.org/ja/documentation/installation/)
を参照。
>
>Unix
Win32
Win32ネイティブ版
mswin32
MinGW, mingw32
Cygwin
Mac OS X
GNU, GNU Hurd

https://docs.ruby-lang.org/ja/latest/doc/platform=2findex.html#:~:text=Ruby%20%E3%81%AF%E6%A7%98%E3%80%85,%2C%20GNU%20Hurd

# アプリの部品、読み込んで利用する　ライブラリ
>ライブラリとは、`プログラムにおいてよく利用される機能を切り出して、再利用しやすいようにまとめたもの`です。ライブラリの利用により、`よく利用する機能を1から作る必要がなくなり、効率的に開発`を行うことができます。
>
>`ライブラリはプログラム作成のための言わば「部品」`です。そのため、それ単体では作動しません。企業や個人など、さまざまな作成者によって作られたライブラリを、GitHubなどの主要なソースコード共有サイトや、各プログラミング言語に用意された`パッケージマネージャなどから選び、構築したアプリケーションに読み込んで利用`します。

https://rookie.levtech.jp/guide/detail/148/#:~:text=%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%81%A8%E3%81%AF%E3%80%81%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%AB%E3%81%8A%E3%81%84%E3%81%A6%E3%82%88%E3%81%8F%E5%88%A9%E7%94%A8%E3%81%95%E3%82%8C%E3%82%8B%E6%A9%9F%E8%83%BD%E3%82%92%E5%88%87%E3%82%8A%E5%87%BA%E3%81%97%E3%81%A6%E3%80%81%E5%86%8D%E5%88%A9%E7%94%A8%E3%81%97%E3%82%84%E3%81%99%E3%81%84%E3%82%88%E3%81%86%E3%81%AB%E3%81%BE%E3%81%A8%E3%82%81%E3%81%9F%E3%82%82%E3%81%AE%E3%81%A7%E3%81%99%E3%80%82%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%81%AE%E5%88%A9%E7%94%A8%E3%81%AB%E3%82%88%E3%82%8A%E3%80%81%E3%82%88%E3%81%8F%E5%88%A9%E7%94%A8%E3%81%99%E3%82%8B%E6%A9%9F%E8%83%BD%E3%82%921%E3%81%8B%E3%82%89%E4%BD%9C%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%AA%E3%81%8F%E3%81%AA%E3%82%8A%E3%80%81%E5%8A%B9%E7%8E%87%E7%9A%84%E3%81%AB%E9%96%8B%E7%99%BA%E3%82%92%E8%A1%8C%E3%81%86%E3%81%93%E3%81%A8%E3%81%8C%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82%0A%0A%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%81%AF%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E4%BD%9C%E6%88%90%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE%E8%A8%80%E3%82%8F%E3%81%B0%E3%80%8C%E9%83%A8%E5%93%81%E3%80%8D%E3%81%A7%E3%81%99%E3%80%82%E3%81%9D%E3%81%AE%E3%81%9F%E3%82%81%E3%80%81%E3%81%9D%E3%82%8C%E5%8D%98%E4%BD%93%E3%81%A7%E3%81%AF%E4%BD%9C%E5%8B%95%E3%81%97%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%E4%BC%81%E6%A5%AD%E3%82%84%E5%80%8B%E4%BA%BA%E3%81%AA%E3%81%A9%E3%80%81%E3%81%95%E3%81%BE%E3%81%96%E3%81%BE%E3%81%AA%E4%BD%9C%E6%88%90%E8%80%85%E3%81%AB%E3%82%88%E3%81%A3%E3%81%A6%E4%BD%9C%E3%82%89%E3%82%8C%E3%81%9F%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%82%92%E3%80%81GitHub%E3%81%AA%E3%81%A9%E3%81%AE%E4%B8%BB%E8%A6%81%E3%81%AA%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89%E5%85%B1%E6%9C%89%E3%82%B5%E3%82%A4%E3%83%88%E3%82%84%E3%80%81%E5%90%84%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E%E3%81%AB%E7%94%A8%E6%84%8F%E3%81%95%E3%82%8C%E3%81%9F%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%83%9E%E3%83%8D%E3%83%BC%E3%82%B8%E3%83%A3%E3%81%AA%E3%81%A9%E3%81%8B%E3%82%89%E9%81%B8%E3%81%B3%E3%80%81%E6%A7%8B%E7%AF%89%E3%81%97%E3%81%9F%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AB%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%82%93%E3%81%A7%E5%88%A9%E7%94%A8%E3%81%97%E3%81%BE%E3%81%99%E3%80%82

# 感想
gemはrubyのみであり、プラットフォームが違うと動作しないらしい。