首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何列出任何不是依赖项的gem(例如,有点像Homebrew中的‘`brew leafes`)

在Ruby的生态系统中,gem是用于安装和管理Ruby库的工具。如果你想要列出项目中所有的gem,但不包括那些作为其他gem依赖项而被安装的gem,你可以使用以下几种方法:

方法一:使用bundle list命令

如果你使用的是Bundler来管理你的gem依赖,你可以使用bundle list命令来列出所有的gem。然后,你可以手动检查哪些gem不是其他gem的依赖项。

代码语言:txt
复制
bundle list

方法二:使用gem dependency命令

你可以使用gem dependency命令来查看每个gem的依赖关系。通过这个命令,你可以找出哪些gem没有依赖其他gem。

代码语言:txt
复制
gem dependency --no-versions

方法三:使用bundle viz命令

Bundler提供了一个可视化工具bundle viz,它可以生成一个依赖关系图。通过查看这个图,你可以直观地看到哪些gem是独立的。

代码语言:txt
复制
bundle viz

方法四:编写脚本检查依赖关系

如果你想要一个更自动化的解决方案,你可以编写一个脚本来检查gem的依赖关系。以下是一个简单的Ruby脚本示例,它使用了Gem::Specification来获取gem的信息,并检查它们的依赖关系:

代码语言:txt
复制
require 'rubygems'

# 获取所有已安装的gem
all_gems = Gem::Specification.all

# 创建一个哈希表来存储gem及其依赖
gem_dependencies = Hash.new { |hash, key| hash[key] = [] }

all_gems.each do |gem|
  gem.dependencies.each do |dependency|
    gem_dependencies[gem.name] << dependency.name
  end
end

# 找出不依赖其他gem的gem
independent_gems = all_gems.reject do |gem|
  gem_dependencies.values.flatten.include?(gem.name)
end

puts "Independent gems:"
independent_gems.each do |gem|
  puts "- #{gem.name}"
end

将上述脚本保存为independent_gems.rb,然后在命令行中运行它:

代码语言:txt
复制
ruby independent_gems.rb

这个脚本会输出所有不依赖其他gem的gem名称。

注意事项

  • 上述方法可能需要根据你的具体需求进行调整。
  • 如果你使用的是Rails项目,确保你在项目的根目录下运行这些命令,因为Bundler会根据GemfileGemfile.lock来确定gem的依赖关系。
  • 如果你有大量的gem,这些方法可能会需要一些时间来执行。

通过上述方法,你可以找出项目中所有的独立gem,即那些不是其他gem依赖项的gem。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

MacOS升级ruby版本

rvm -v 接下来,查看当前 Ruby 版本: ruby -v 然后,列出已知的 Ruby 版本: rvm list known 最后,选择并安装所需的 Ruby 版本,例如: rvm install...若未安装,在终端中执行以下命令进行安装(安装过程中将提示输入当前用户的密码): ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew.../go/install)" 安装成功后,使用以下命令更新 HomeBrew 并安装 Ruby 最新版本: brew update brew install ruby 需要注意的是,通过 HomeBrew...要更换源,可以在终端中执行以下命令: $ gem update --system $ gem uninstall rubygems-update $ gem sources -r http://rubygems.org...同时,建议您在升级后进行一些简单的测试,运行一些常用的 Ruby 脚本或项目,以确保新的 Ruby 版本在您的系统中稳定运行,并且没有出现任何异常或错误。

37410
  • Mac:必备工具之brew

    安装 brew 首先要通过如下命令安装 brew /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install...brew upgrade nodejs brew remove nodejs 其他命令 brew list               # 列出当前安装的软件 brew search nodejs         ...# 查询与 nodejs 相关的可用软件 brew info nodejs           # 查询 nodejs 的安装信息 如果需要指定版本,可以在 brew search 查看有没有需要的版本...,在 @ 后面指定版本号,例如 brew install thrift@0.9 brew services brew services 是一个非常强大的工具,可以用来管理各种服务的启停,有点像 linux...brew services restart elasticsearch      # 重启 elasticsearch brew services list               # 列出当前的状态

    78810

    iMac(OS X)常用开发工具介绍

    Mac系统上主要的包管理有Macport和Homebrew,两者的区别主要是对依赖包处理方式不一样,MacPorts是下载所有依赖库的源代码,本地编译安装所有依赖,Homebrew是尽量查找本地依赖库,...官网: http://brew.sh/index_zh-cn.html github: https://github.com/Homebrew/homebrew 安装及使用方法: http...,找到匹配的值按tab,即可复制 ⌘ + d : 横着分屏 ⌘ + shift + d : 竖着分屏 ⌘ + r = clear : 换到新一屏,而不是 类似clear ,会创建一个空屏...ctrl + u :清空当前行,无论光标在什么位置 () + ⌘ + ; : [() 输入的命令开头字符],会自动列出输入过的命令 ⌘ + shift + h : 会列出剪切板历史...不过类似的网上很多 网络代理设置: 日常开发中各种代理设置方法汇总(shell、Android Studio、gem、npm):http://blog.bihe0832.com/proxy.html 订阅管理

    85950

    Hello Octopress

    时按照提示的命令执行即可:brew tap homebrew/dupes ; brew install apple-gcc42] 安装Octopress 这部分耗时会长一些,其中的octopress目录名称可以随便修改...,例如myblog等,gem list命令可以查看已经安装好了的依赖包,rake install就类似make install进行安装(Octopress的主题),一定要确保这里执行的命令都是正确执行了的...rake的配置文件,类似于makefile,这个我修改了一些内容 ├─ Gemfile #bundle要下载需要的gem依赖关系的指定文件 ├─ Gemfile.lock #这些gem依赖的对应关系...关于如何修改主题和默认的样式 Octopress支持的第三方主题下载和预览网站 关于侧边栏和主题的定制,添加新浪微博,多说评论,分类标签云等等 [注意,使用多说的话,shortname不是你的个人资料中的名称...④ 关于本地编写博客 对于Markdown编辑器,我觉得Mou可能不是最好的,但是,它是很精巧的!我简直爱不释手,希望之后能够在我的博客中实现数学公式的编辑,这样会很方便,哈哈 哦了,今天就到这里啦!

    61220

    Homebrew 在 Linux 上的使用技巧和深度功能

    举个例子,假如你需要不同版本的某个工具,比如 python,使用 Homebrew 就可以为每个项目或环境安装独立的版本,而无需依赖系统默认版本。这在开发过程中尤其有用,特别是当你要支持多个版本时。...Tap:Tap 是 Homebrew 额外的包源,你可以通过 brew tap 来添加来自其他地方的软件包源。例如,某些第三方开发者可能会维护自己的软件源,包含一些你需要的特定版本软件。...bash复制代码brew tap user/repoFormulae:公式(Formula)是 Homebrew 用来描述如何安装软件的脚本。...你可以编写自己的 formula,指定安装依赖、配置选项等,甚至可以上传到 GitHub 共享给其他用户。本地构建Homebrew 并不是唯一一个可以安装二进制包的工具。...管理依赖和环境brew bundle 进行批量管理如果你有多个包需要安装,Homebrew 提供了一个非常便利的工具:brew bundle。

    9510

    Homebrew:让你从 Mac 切换到 Linux 更轻松

    由于我正 从 Mac 切换到 Linux,所以一直在研究我在 macOS 最常用的开源软件在 Linux 表现如何,最终,我很高兴地发现 Homebrew 对 Linux 的支持太赞了!...在为我过去使用的专有软件寻找开源替代品的过程中,我已经学会了许多使用方法,而保持一些熟悉的东西,比如 Homebrew,可以让我专注于一次学习一件事情,而不是被不同系统间的差异搞垮。...命令行工具 Brew Homebrew 宣称自己是一款默认只 “安装你需要而 [Linux] 没有的东西”的应用程序。 你可以用 brew 命令安装任何打包在 Homebrew 中的命令行软件。...备份 Homebrew 的安装记录 我最中意的 Homebrew 特性之一就是你可以像其它任何 用版本控制工具来备份点文件 一样备份你的安装记录。...$ brew bundle 它会在我的新机器上安装所有列出的 “秘方”。

    1.2K20

    iOS-安装和使用 CocoaPods

    因为Podfile.lock会锁定当前各依赖库的版本,之后如果多次执行pod install不会更改版本,要pod update才会改Podfile.lock了。...七、CocoaPods的原理: 摘自唐巧老师 CocoaPods是将所有的依赖库都放到另一个名为Pods项目中,然后让主项目依赖Pods项目,这样,源码管理工作都从主项目移到了Pods项目中。...发现的一些技术细节有: Pods 项目最终会编译成一个名为libPods.a的文件,主项目只需要依赖这个.a文件即可。...对于资源文件,CocoaPods提供了一个名为Pods-resources.sh的bash脚本,该脚本在每次项目编译的时候都会执行,将第三方库的各种资源文件复制到目标目录中。...CocoaPods通过一个名为Pods.xcconfig的文件来在编译时设置所有的依赖和参数。

    3.8K70

    Setting Up Environments on New Mac

    通过brew doctor命令可以检查系统中软件包可能存在的一些问题。...添加export PATH=/usr/local/bin:$PATH到~/.bash_profile文件中,这样默认先使用Homebrew安装的应用程序,而不是使用系统。...[注:Homebrew不会破坏系统的一些软件或者环境变量,另外,Homebrew下载的安装包存放在/Library/Caches/Homebrew目录中,创建的Formula存放在/usr/local/...(gem list查看已安装的模块) 如果想要使用以前的Octopress的话,执行下面的命令,之后就可以像以前一样使用Octopress了 brew update brew install rbenv...如果是进行OpenCV源码编译的话,因为会产生很多的文件保存到/usr/local下的各个子目录中,这会导致brew doctor报出很多错误,例如/usr/local/lib下很多OpenCV的库Homebrew

    1.1K20

    千秋万代,一统江湖——Flutter for All Screens

    这里重点提一下CocoaPods的安装配置。 CocoaPods是iOS开发、macOS开发中的包依赖管理工具,效果如Java中的Maven,nodejs的npm。...虽然我们之前已经配置好了Flutter的开发环境,但是由于桌面开发仍有一些配置项是不一样的,所以我们需要执行下面一个命令来确保所有需要的依赖都被安装成功了。...在终端执行: flutter run 终端输出的结果应该是类似下面这样的: 运行起来的结果应该如下图所示: 是不是和之前的App一模一样呢?...也走过了基本的配置流程,接下来我们就可以在桌面上运行几乎任何已有的Flutter项目了。...替换homebrew-core.git: cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core" git remote set-url origin

    2.3K40

    Homebrew 入门

    /Homebrew/install/master/install)" 常用命令 搜索 brew search mysql 查询 brew info mysql 主要看具体的信息,比如目前的版本,依赖,安装后注意事项等...更新 brew update 这会更新 Homebrew 自己,并且使得接下来的两个操作有意义 检查过时 brew outdated 这回列出所有安装的软件里可以升级的那些 升级 brew upgrade...升级所有可以升级的软件们 清理 brew cleanup 清理不需要的版本极其安装包缓存 后台启用服务 brew services 命令是用来管理 Mac 系统中后台服务的,比如在 Mac 上安装了...MySQL ,当我希望将这个变成一个后台服务启动的时候,可以使用,有点像 Linux 下的 service 和 systemctl 两个命令。...mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git brew update bottles 镜像则需要配置到环境变量中,我使用的是

    92510

    发现一款好用到爆的Shell工具,被惊艳到了!

    package 管理 brew 安装软件包 brew services list 列出 brew 管理运行的服务 brew info package 查看软件包信息 brew deps package...列出软件包的依赖关系 brew help 查看帮助 brew cleanup 清除过时软件包 brew link package 创建软件包符号链接 brew unlink package 取消软件包符号链接...https://mirrors.ustc.edu.cn/homebrew-core.git 如何知道 homebrew 仓库中都有哪些安装包可用呢?...brew install openjdk@8 对比下载安装包,通过图形化界面的方式安装 JDK,是不是感觉在 Shell 下安装 JDK 更炫酷一些? 关键是还省去了环境变量的配置。...有了 chocolatey 和 homebrew,以后再安装任何一款软件,只要仓库里有,只需要一行命令就可以搞定了,还是非常值得给大家安利的。

    2.1K20

    Tmux 速成教程:技巧和调整

    例如,假如你想通过快捷键列出当前 Tmux 中的会话(对应的快捷键是 s),那么你只需要做以下几步: 按下组合键 Ctrl-b (Tmux 快捷键前缀) 放开组合键 Ctrl-b 按下 s 键 这里有一些小建议...该文件中存放的就是对 Tmux 的配置。 小提示:如果你希望新的配置项能够立即生效,那么你可以将下面这一行配置加入到文件~/.tmux.conf 中。.../Homebrew/install/master/install)" 安装 Tmate $ brew update && \ brew tap nviennot/tmate &...这功能太棒了,不是吗。 Tmuxinator 是一个 Ruby 的 gem 包,可用于创建 Tmux 的会话。它的工作方式是先在配置文件中定义会话中的细节,然后用 1 条命令创建出这些会话。...下面就让我们看看如何安装 Tmuxinator 以及如何添加配置来为指定项目开启一个会话。可以通过运行如下命令安装 Tmuxinator 的 gem 包。

    4K100

    如何在macOS上安装Ruby并设置本地编程环境

    Ruby旨在为初学者提供易用和有趣的功能,但功能强大,足以创建复杂的系统。对于初学者和经验丰富的开发人员来说,这是一个很好的选择。 Ruby已经包含在默认的macOS安装中,尽管它不是最新的版本。...我们将使用Homebrew安装最新版本的Ruby,然后将我们的系统配置为使用此版本而不是默认情况下macOS使用的Ruby版本。...具体来说,当我们使用Homebrew安装Ruby时,这个更改确保我们的系统将运行我们使用Homebrew安装的版本而不是一个macOS包含的版本。...第4步 - 安装Ruby 安装Homebrew后,您可以轻松安装各种软件和开发人员工具。我们将使用它来安装Ruby及其依赖项。...Homebrew将安装许多依赖项,但最终将下载并安装Ruby本身: ==> Installing dependencies for ruby: readline, libyaml, openssl ​

    3.3K10

    如何使用Homebrew在Linux和Windows上安装软件

    为什么用Homebrew代替发行版的软件包管理器? 您可能出于某些原因会选择使用Linuxbrew而不是系统的标准软件包管理器。 首先,您不需要使用sudo命令来安装软件包。...软件包安装在您的主目录或特定于Linuxbrew的主目录中。 使用Homebrew/Linuxbrew的另一个原因是,您可能想在不同的系统上使用相同的软件包管理器。...系统要求 在Homebrew网站的Linuxbrew部分,它列出了一些系统要求,大多数相对较新的系统都可以轻松满足以下要求: GCC 4.4或更新版本。...相关链接 Homebrew网站 目前不支持32位系统,因此,如果您运行的是较旧的系统,则可能会不走运。 还需要安装一些依赖项。...安装Linuxbrew的依赖项 对于Ubuntu或其他基于Debian的系统,您可以在一个命令中安装Homebrew需要运行的所有内容: linuxidc@linuxidc:~/

    3.8K20
    领券