MAC
 Computer >> コンピューター >  >> システム >> MAC

Mac システム Ruby を使用しないでください – 代わりにこれを使用してください

「システム Ruby を使うな」と誰かが言ったことがあるかもしれません。良いアドバイスですが、なぜですか?調べてみましょう。

どの Ruby をお持ちですか?

MacOS には「システム Ruby」がプリインストールされています。

which を使用 Ruby がインストールされている場所を確認するコマンド:

$ which ruby
/usr/bin/ruby

/usr/bin/ruby が表示された場合 、プリインストールされた macOS システム Ruby です。

システム Ruby を更新したり、gem を追加したりしてシステム Ruby を変更しない限り、sysadmin スクリプトを実行するためにシステム Ruby を使用しても問題ありません。

しかし、Ruby でプロジェクトを開発しているときには、それを使用したくありません。

開発用 Ruby

Ruby でプロジェクトを開発するには、Homebrew で Ruby をインストールするか、asdf、chruby、rbenv、rvm などのバージョン マネージャーを使用する必要があります。

バージョン マネージャーは、複数のプロジェクトを調整していて、すべてを一度に更新できない場合に役立ちます。バージョン マネージャーを比較し、Ruby をインストールする最適な方法を示すガイドについては、記事「Mac に Ruby をインストールする」を参照してください。

しかし、なぜ macOS のデフォルトの Ruby を使わないのでしょうか? Mac の既定の Ruby を開発に使用することが良くない理由を見てみましょう。

Gem インストールの手間

RubyGems は、Ruby での開発を簡単かつ楽しくする既製のソフトウェア ライブラリです。ほとんどの Ruby プロジェクトは、少なくともいくつかの gem を使用します。

gem install を実行している Mac システム Ruby を使用している場合 gem をシステムの Ruby ディレクトリ /Library/Ruby/Gems/2.6.0 に保存しようとします。 .そのディレクトリは root が所有しています 、システムのスーパーユーザー。通常のユーザーはこれに書き込むことができません (そして、このフォルダーを変更するべきではありません)。

gem install rails などの gem をインストールしようとすると、 、権限エラーが表示されます:

ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.6.0 directory

システム セキュリティに違反しています

Unix ベースのシステムは強力なので、回避策があります。スーパーユーザーとして gem をインストールして、アクセス許可の制限を無効にすることができます。しかし、これをしないでください!

$ sudo gem install rails

sudo を実行しようとしているときはいつでも 、あなたは立ち止まって、自分の足を撃ちそうとしているかどうか尋ねる必要があります.

この場合、sudo が必要です OSが管理するシステムファイルを変更しているためです。それをしないでください!システムが壊れた状態または危険にさらされた状態のままになる可能性があります。さらに悪いことに、gem には、コンピューターを改ざんする悪意のあるコードが含まれている可能性があります。

宝石の管理

経験豊富な開発者は、Bundler を使用して gem をインストールし、その依存関係を管理します。

異なるバージョンの gem を使用するプロジェクトがあるとします (プロジェクト間に新しい gem がリリースされた可能性があります)。または、プロジェクト内の 2 つの異なる gem が、依存する gem の異なるバージョンに依存している可能性があります。

Bundler は、プロジェクト ディレクトリ内の Gemfile を使用して、必要な gem を追跡します。 sudo を使用する場合 システム Ruby で gem をインストールしようとすると、システム Ruby ディレクトリに互換性のない gem が混乱してしまうことになります。

gem のホーム ディレクトリを使用するコマンドを使用して Bundler をインストールすることにより、システムのアクセス許可の問題を回避できます。ただし、Homebrew を使用して Ruby をインストールするか、バージョン マネージャーを使用してインストール済みの Bundler を使用する方が簡単です。これにより、ローカル開発環境が正しくセットアップされます。

最新の Ruby を使用

プロジェクトを開始するときは、最新の Ruby リリースを使用してください (これが書かれている時点では 3.0 です)。

macOS Catalina や Big Sur のシステム Ruby は古い Ruby 2.6.3 です。 Ruby を始めたばかりの場合は、Homebrew をインストールして、Ruby 3.0 でプロジェクトに取り組んでください。別のプロジェクトの構築を開始するときは、バージョン マネージャーをインストールして、さまざまな Ruby バージョンのプロジェクトに対応できるようにする時期かもしれません。

Big Sur 後の MacOS

MacOS Big Sur が最新バージョンになりました。 Apple のコメント:

「Python、Ruby、Perl などのスクリプト言語ランタイムは、従来のソフトウェアとの互換性のために macOS に含まれています。macOS の将来のバージョンには、デフォルトでスクリプト言語ランタイムが含まれていないため、追加のパッケージをインストールする必要がある場合があります。 ."

2021 年末にこれを読んでいる場合、システム Ruby はすでになくなっている可能性があります。そうでない場合は、Homebrew またはバージョン マネージャーを使用して Ruby をインストールする準備をしてください。

Ruby をお楽しみください

Rails を使用して Web アプリケーションを構築することを計画している開発者向けに、Mac に Rails をインストールするというガイドを作成しました。これは、Mac に Ruby をインストールするだけでなく、Ruby だけでなく Node.js でも動作するバージョン マネージャーを選択する方法を示しています。

Ruby でコーディングする楽しさをお楽しみください。結局のところ、それはプログラマーの幸福に捧げられた言語として知られています。ただし、システム Ruby は macOS 用であって、あなた用ではありません。


  1. Mac のタスク マネージャー:アクティビティ モニターとその使い方

    Mac タスク マネージャーをお探しですか? Windows エクスペリエンスの定番ですが、macOS には Windows ユーティリティと完全に同等のものはありません。代わりに、macOS には「アクティビティ モニター」と呼ばれるプログラムがあり、概して、Windows タスク マネージャーと同じ機能を果たします。 アクティビティ モニターとは何か、それが Mac のタスク マネージャーの代わりになる方法、およびその使用方法をよく見てみましょう。 アクティビティ モニターとは オペレーティング システムの主なタスクの 1 つは、コンピューターで実行されているすべてのソフトウェア

  2. Mac で Line In オーディオ入力を使用する

    すべての Mac デバイスにはマイクが内蔵されていますが、オーディオ入出力用の別のポートであるヘッドフォン ジャックもあります。もちろん、それは Apple がそれを高価なアドオン機能にすることを決定するまでのことです! ただし、その時が来るまでは、このポートを使用して、外部マイクなどのライン入力オーディオ入力デバイスを Mac に接続できます。 macOS では、入力デバイスを受け入れるようにヘッドフォン ジャックの目的を切り替えたり、接続されているデバイスをデフォルトの入力デバイスとして設定したりできます。 macOS でオーディオ ライン入力オーディオ入力デバイスを使用する方法は