asdf和bundler都是Ruby开发语言中的包管理工具,但它们的作用不同。
asdf是一个类似于nvm(node.js版本管理器)的版本管理器,用于管理不同的语言解释器版本。它支持Ruby、Node.js、Python等语言,可以让开发者在同一系统上同时使用多个版本的解释器,从而方便在多个不同的项目中使用不同版本的解释器。
下面是一个使用asdf管理Ruby版本的示例:
安装asdf:
$ git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.8.1
在Shell配置文件(~/.bash_profile、~/.zshrc等)中添加以下内容:
. $HOME/.asdf/asdf.sh . $HOME/.asdf/completions/asdf.bash
安装Ruby:
$ asdf plugin-add ruby https://github.com/asdf-vm/asdf-ruby.git
$ asdf install ruby 2.7.2
$ asdf local ruby 2.7.2
在当前项目中,Ruby的版本已切换到2.7.2。
bundler是用于管理Ruby依赖库的工具。它能够自动从Gemfile中安装、卸载、更新依赖库,以确保依赖库版本的一致性。
下面是一个Gemfile文件的示例:
source 'https://rubygems.org' ruby '2.7.2'
gem 'rails', '6.0.3' gem 'sqlite3', '~> 1.4' gem 'puma', '~> 4.1' gem 'sass-rails', '>= 6' gem 'webpacker', '~> 4.0'
group :development, :test do gem 'rspec-rails', '~> 4.0.1' gem 'factory_bot_rails
上一篇:ASDF无法在自定义目录中找到包