1
1

More than 3 years have passed since last update.

ローカルにインストールしたパッケージとライブラリの削除方法[Homebrew, Ruby(Gem)]

Posted at

この記事の目的

以下の手順通り、Rubyの開発環境構築を自動化しました。方法としましては、シェルスクリプトを用いて、Homebrewによるパッケージのインストールの段階からコードで管理するようにしました。
その際に、シェルスクリプトの冪等性を確保する為に、このスクリプトを用いた環境構築のテストを行う必要がありました。
そしてそのテストの為に、一度ローカルにあるパッケージやGemを削除しましたが、少し面倒だったので忘れないようここに記しておきます。

Homebrewでインストールしたパッケージを削除する

私はローカルの環境構築の自動化をテストしたかった為、出来る限りローカルを初期状態に戻す必要がありました。その為私は、自身でインストールしたパッケージと、依存関係によりインストールされたパッケージ全てを削除しようと考えました。その方法を下に記載します。

一覧を表示

Homebrewでは、パッケージのことをformulaeと呼びます。以下formulaeの部分は任意のパッケージに置き換えて読んでください。

$ brew list
==> Formulae
formulae1   formula2  formula3  formula4

アンインストール

$ brew uninstall formula1
$ brew uninstall formula2 formula3 # 複数一括削除も可能

依存関係の確認

$ brew deps ruby
    libyaml
    openssl@1.1
    readline

インストール方法の確認

ここで言うインストール方法と言うのは、以下の2通りのことを指します。

「私自身の指示でインストールする方法」もしくは
「依存関係によりインストールされる方法」

上記の例で言うと、rubyは前者であり、libyamlopenssl@1.1は後者に当たります。
これを確認するの為には以下のコマンドを実行し、"installed"の項目を確認します。

$ brew info --json=v1 ruby
    #(前略)
    "installed": [
      {
        #(中略)
            }
            {
        "installed_as_dependency": false,
        "installed_on_request": true
      }
    ],
    #(後略)

"installed_as_dependency"が依存関係によりインストールされたもので、
"installed_on_request"がユーザーの指示でインストールされたものです。

上の4つのコマンドを駆使し、追加でインストールされたパッケージを全て削除しました。

Rubyの外部ライブラリGemを全て削除する

rubyのgemを削除する手法は2stepに分かれています。

  1. インストールしたgemを削除する
  2. 上位で削除できないdefault設定のgemも削除する

これら2ステップにより、ローカル内のgemを全て削除しました。

① インストールしたgemを削除する

# default以外のgemを削除する
$ gem uninstall -I -a -x --user-install --force
    :

# defaultのgemが残る
$ gem list

*** LOCAL GEMS ***

benchmark (default: 0.1.0)
bigdecimal (default: 2.0.0)
    :
zlib (default: 1.1.0)

② default設定のgemも削除する


# gemの環境設定を確認する
$ gem environment
    RubyGems Environment:
      - INSTALLATION DIRECTORY: /Users/****/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0

# gemのdefault設定を確認する
$ cd ~/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0
$ ls
    build_info  bundler     cache       doc     extensions  gems        specifications
$ cd specifications
$ ls
    default # このディレクトリがgemのデフォルト設定を管理する場所

# 上で確認したgemのdefault設定を削除
$ rm -rf ~/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/specifications/default

# defaultも含む全てのgemが削除されている
$ gem list

*** LOCAL GEMS ***

これによりgemを全て削除することができた。なおこの操作の後、ルートディレクトリ配下の.rbenvruby-versionなども削除し、初期設定に近づけた。

参考記事

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1