Code Monkey home page Code Monkey logo

brew-gem's People

Contributors

adamv avatar bbergstrom avatar ehlertij avatar jacknagel avatar josh avatar juplutonic avatar kevinmarx avatar kopischke avatar lundebrek avatar michaelhood avatar nicklamuro avatar nicksieger avatar pingortle avatar rcmdnk avatar soupmatt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

brew-gem's Issues

gem download fails with EPERM

karsten@qualifier:~$ brew gem install papertrail
==> Using the sandbox
==> Fetching papertrail from gem source
ERROR:  While executing gem ... (Errno::EPERM)
    Operation not permitted - /Users/karsten/.gem/specs/api.rubygems.org%443/specs.4.8
==> /usr/bin/gem install /Users/karsten/Library/Caches/Homebrew/papertrail-0.10.3.gem --no-ri --no-rdoc --no-wrapper --no-user-install --install-dir /usr/local/
Last 15 lines from /Users/karsten/Library/Logs/Homebrew/gem-papertrail/01.gem:
2017-08-03 00:07:18 +1200

/usr/bin/gem
install
/Users/karsten/Library/Caches/Homebrew/papertrail-0.10.3.gem
--no-ri
--no-rdoc
--no-wrapper
--no-user-install
--install-dir
/usr/local/Cellar/gem-papertrail/0.10.3
--bindir
/usr/local/Cellar/gem-papertrail/0.10.3/bin

ERROR:  Could not find a valid gem '/Users/karsten/Library/Caches/Homebrew/papertrail-0.10.3.gem' (>= 0) in any repository

Looking at the source, it seems brew-gem just runs gem fetch ... from the homebrew cache directory (however it should check the exit code and not continue if the download failed)

I haven't been able to figure out why gem fetch even fails in the first place though. The permissions of .gem/specs/api.rubygems.org%443 look fine. When I cd into the homebrew cache and run fetch manually it works:

karsten@qualifier:~/Library/Caches/Homebrew$ gem fetch papertrail --version 0.10.3
Fetching: papertrail-0.10.3.gem (100%)
Downloaded papertrail-0.10.3

After this brew gem install succeeds -- it attempts the download again (which fails again), but then proceeds to install the gem:

karsten@qualifier:~/Library/Caches/Homebrew$ brew gem install papertrail
==> Using the sandbox
==> Fetching papertrail from gem source
ERROR:  While executing gem ... (Errno::EPERM)
    Operation not permitted - /Users/karsten/.gem/specs/api.rubygems.org%443/specs.4.8
Warning: Cannot verify integrity of papertrail-0.10.3.gem
A checksum was not provided for this resource
For your reference the SHA256 is: a29916a203a7960b25191f6b0bca671580285273a71f6de9455c08997fe9c5de
==> /usr/bin/gem install /Users/karsten/Library/Caches/Homebrew/papertrail-0.10.3.gem --no-ri --no-rdoc --no-wrapper --no-user-install --install-dir /usr/local/
๐Ÿบ  /usr/local/Cellar/gem-papertrail/0.10.3: 157 files, 513.3KB, built in 4 seconds
karsten@qualifier:~$ gem --version
karsten@qualifier:~$ which gem
/usr/bin/gem
karsten@qualifier:~$ gem --version
2.6.12
karsten@qualifier:~$ which ruby
/usr/bin/ruby
karsten@qualifier:~$ ruby --version
ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin15]
karsten@qualifier:~$ brew --version
Homebrew 1.3.0-15-g2ad03b8
Homebrew/homebrew-core (git revision 4b5dd; last commit 2017-08-02)
karsten@qualifier:~$ brew info brew-gem
brew-gem: stable 0.8.1, HEAD
Install rubygems as homebrew formulae
https://github.com/sportngin/brew-gem
/usr/local/Cellar/brew-gem/0.8.1 (10 files, 11.9KB) *
  Built from source on 2017-08-03 at 00:24:08
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/brew-gem.rb

Unsure how to diagnose this one

I installed Mojave on a fresh system, install Homebrew, installed brew-gem and ruby with brew (no system-level commands).

I'm trying to install aws-assume-role and it seems to get hung up on the keyring dependency. None of the files/directories in /usr/local/Cellar/, $HOME/Library/Logs/Homebrew/, or $HOME/Library/Caches/Homebrew/ for this particular gem existed prior:

$ brew gem install aws_assume_role --homebrew-ruby
==> Fetching aws_assume_role from gem source
Fetching: aws_assume_role-1.2.1.gem (100%)
Downloaded aws_assume_role-1.2.1
Warning: Cannot verify integrity of aws_assume_role-1.2.1.gem
A checksum was not provided for this resource
For your reference the SHA256 is: 56a07ac6468be291a80564645b8434c041f7e818d556cdeaa1b60fbf510725f9
==> /usr/local/bin/gem install /Users/alan/Library/Caches/Homebrew/aws_assume_role-1.2.1.gem --no-ri --no-rdoc --no-wrapper --no-user-install --install-dir /usr/local/Cellar/gem-aws_assume_role/1.2.1 --bindir
Last 15 lines from /Users/alan/Library/Logs/Homebrew/gem-aws_assume_role/01.gem:

    current directory: /usr/local/Cellar/gem-aws_assume_role/1.2.1/gems/keyring-0.4.1/ext
/usr/local/opt/ruby/bin/ruby mkrf_conf.rb
*osx: installing ruby-keychain

current directory: /usr/local/Cellar/gem-aws_assume_role/1.2.1/gems/keyring-0.4.1/ext
rake RUBYARCHDIR=/usr/local/Cellar/gem-aws_assume_role/1.2.1/extensions/x86_64-darwin-18/2.5.0/keyring-0.4.1 RUBYLIBDIR=/usr/local/Cellar/gem-aws_assume_role/1.2.1/extensions/x86_64-darwin-18/2.5.0/keyring-0.4.1
Ignoring ffi-1.9.25 because its extensions are not built.  Try: gem pristine ffi --version 1.9.25
/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems.rb:241:in `bin_path': can't find gem rake (>= 0.a) (Gem::GemNotFoundException)
	from /usr/bin/rake:22:in `<main>'

rake failed, exit code 1

Gem files will remain installed in /usr/local/Cellar/gem-aws_assume_role/1.2.1/gems/keyring-0.4.1 for inspection.
Results logged to /usr/local/Cellar/gem-aws_assume_role/1.2.1/extensions/x86_64-darwin-18/2.5.0/keyring-0.4.1/gem_make.out

The /usr/local/Cellar/gem-aws_assume_role/ directory doesn't exist for further inspection. Contents of /Users/alan/Library/Logs/Homebrew/gem-aws_assume_role/ available here but I'm not sure provides much detail. How can I help troubleshoot or diagnose?

Split up brew-gem from being a single bin/file

I think we have reached the extent that we can support brew-gem as a single file in a reasonable manner. There are no limitations in homebrew formulas that prevent us from having brew-gem installed as a bin executable and calling out to separate library files for parsing arguments, processing the installation, and using a template file for building the temp formula.

This obviously would take time to do right, but I would like to at least call out a few things that should be done when attempting to accomplish this:

  1. Tests. At a minimum, some unit tests, but possibly some integration tests via aruba or a similar framework.
  2. Split files out into their respective functions.
    • A lib for parsing arguments, probably making use of Ruby's OptionParser
    • Libs for handling searching for the gem, downloading of gem, building of the formula file, etc.
    • A separate template file for the formula.
  3. Avoid any external gem dependencies for deployment. We can make use of gems for test frameworks and such is fine, but I think trying to use external gems for the execution will be too cumbersome.

Cannot find ruby.h with --homebrew-ruby

$ brew-gem install aws_assume_role --homebrew-ruby
==> Fetching aws_assume_role from gem source
Downloaded aws_assume_role-1.1.0-universal-darwin
Warning: Cannot verify integrity of aws_assume_role-1.1.0.gem
A checksum was not provided for this resource
For your reference the SHA256 is: 3c9dce81790b292f2744123a84f887f0d8a93b14dc126d12e29a903875fdc254
==> /usr/local/bin/gem install /Users/alan/Library/Caches/Homebrew/aws_assume_role-1.1.0.gem --no-ri --no-rdoc --no-wrapper --no-user-install --install-dir /usr/local/Cellar/gem-aws_assume_role/1.1.0
Last 15 lines from /Users/alan/Library/Logs/Homebrew/gem-aws_assume_role/01.gem:
         ^~~~~~~~
1 error generated.
make: *** [Buffer.o] Error 1
make: *** [Call.o] Error 1
1 error generated.
1 error generated.
make: *** [Function.o] Error 1
make: *** [ClosurePool.o] Error 1
1 error generated.
make: *** [AbstractMemory.o] Error 1

make failed, exit code 2

Gem files will remain installed in /usr/local/Cellar/gem-aws_assume_role/1.1.0/gems/ffi-1.9.18 for inspection.
Results logged to /usr/local/Cellar/gem-aws_assume_role/1.1.0/extensions/x86_64-darwin-17/2.5.0/ffi-1.9.18/gem_make.out

Do not report this issue to Homebrew/brew or Homebrew/core!

Contents of 01.gem are in this gist.

If I run the displayed gem command manually, it completes successfully. I tried a few other gems and have the same result. I'm not clear on why it's not found because it's accessible in the /usr/local/include/ tree (via a subdirectory):

$ find -L /usr/local -name ruby.h
/usr/local/Cellar/ruby/2.5.0/include/ruby-2.5.0/ruby/ruby.h
/usr/local/Cellar/ruby/2.5.0/include/ruby-2.5.0/ruby.h
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.3/include/ruby-2.3.0/ruby/ruby.h
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.3/include/ruby-2.3.0/ruby.h
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/current/include/ruby-2.3.0/ruby/ruby.h
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/current/include/ruby-2.3.0/ruby.h
/usr/local/include/ruby-2.5.0/ruby/ruby.h
/usr/local/include/ruby-2.5.0/ruby.h
/usr/local/opt/ruby/include/ruby-2.5.0/ruby/ruby.h
/usr/local/opt/ruby/include/ruby-2.5.0/ruby.h
/usr/local/opt/[email protected]/include/ruby-2.5.0/ruby/ruby.h
/usr/local/opt/[email protected]/include/ruby-2.5.0/ruby.h
/usr/local/var/homebrew/linked/ruby/include/ruby-2.5.0/ruby/ruby.h
/usr/local/var/homebrew/linked/ruby/include/ruby-2.5.0/ruby.h

Failed to install gollum

Hi,
I can't install gollum with brew gem install gollum --homebrew-ruby, receive ever the same error:

==> Fetching gollum from gem source
Downloaded gollum-4.0.1
Warning: Cannot verify integrity of gollum-4.0.1.gem
A checksum was not provided for this resource
For your reference the SHA256 is: af79532583634cb2bc22dad7c2a36327df5560b924756cdf2f475b3d10e8ef0a
==> /usr/local/bin/gem install /Users/emiliano/Library/Caches/Homebrew/gollum-4.0.1.gem --no-ri --no-rdoc --no-wrapper --no-user-install --install-dir /usr/local/Cellar/gem-gollum/4.0.1
Last 15 lines from /Users/emiliano/Library/Logs/Homebrew/gem-gollum/01.gem:
    --with-icu-lib
    --without-icu-lib=${icu-dir}/lib
    --with-icui18nlib
    --without-icui18nlib
    --with-icui18nlib
    --without-icui18nlib

To see why this extension failed to compile, please check the mkmf.log which can be found here:

  /usr/local/Cellar/gem-gollum/4.0.1/extensions/x86_64-darwin-14/2.3.0/charlock_holmes-0.7.3/mkmf.log

extconf failed, exit code 1

Gem files will remain installed in /usr/local/Cellar/gem-gollum/4.0.1/gems/charlock_holmes-0.7.3 for inspection.
Results logged to /usr/local/Cellar/gem-gollum/4.0.1/extensions/x86_64-darwin-14/2.3.0/charlock_holmes-0.7.3/gem_make.out

READ THIS: https://git.io/brew-troubleshooting

It seem linked on troubleshooting guide line but I've tried it before write this issue.

Don't short-circuit upgrade command

Calling brew gem upgrade with multiple gems, if one of them is the latest version the command will exit with error and not upgrade the other ones.

This is a request for the upgrade command to process all listed gems, ignoring if there are already upgraded gems in the list.

Cannot install mailcatcher gem

This used to work in the past (though I'm not sure with which brew-gem version, but fails now:

โžœ  ~ brew gem install mailcatcher                
==> Fetching mailcatcher from gem source
Downloaded mailcatcher-0.6.5
Warning: Cannot verify integrity of mailcatcher-0.6.5.gem
A checksum was not provided for this resource
For your reference the SHA256 is: 7d8d5bdac5f86b8801c79ba87add11f44ba661a08a10e14231ae44142c9acf40
==> /usr/bin/gem install /Users/fabian/Library/Caches/Homebrew/mailcatcher-0.6.5
๐Ÿบ  /usr/local/Cellar/gem-mailcatcher/0.6.5: 1,059 files, 16.3MB, built in 30 seconds
โžœ  ~ hash -r
โžœ  ~ mailcatcher
/Library/Ruby/Site/2.3.0/rubygems/dependency.rb:308:in `to_specs': Could not find 'eventmachine' (= 1.0.9.1) among 16 total gem(s) (Gem::MissingSpecError)
Checked in 'GEM_PATH=/Users/fabian/.gem/ruby/2.3.0:/Library/Ruby/Gems/2.3.0:/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/gems/2.3.0', execute `gem env` for more information
	from /Library/Ruby/Site/2.3.0/rubygems/dependency.rb:320:in `to_spec'
	from /Library/Ruby/Site/2.3.0/rubygems/core_ext/kernel_gem.rb:65:in `gem'
	from /usr/local/Cellar/gem-mailcatcher/0.6.5/gems/mailcatcher-0.6.5/lib/mail_catcher.rb:3:in `<top (required)>'
	from /Library/Ruby/Site/2.3.0/rubygems/core_ext/kernel_require.rb:133:in `require'
	from /Library/Ruby/Site/2.3.0/rubygems/core_ext/kernel_require.rb:133:in `rescue in require'
	from /Library/Ruby/Site/2.3.0/rubygems/core_ext/kernel_require.rb:40:in `require'
	from /usr/local/Cellar/gem-mailcatcher/0.6.5/gems/mailcatcher-0.6.5/bin/mailcatcher:3:in `<top (required)>'
	from /usr/local/bin/mailcatcher:5:in `load'
	from /usr/local/bin/mailcatcher:5:in `<main>'

I'm on High Sierra, if that makes a difference. Any idea where to start looking?

Support of `--pre`

I wanted to install octopress 3.0 rc, which is normally installed via

gem install octopress --pre

But

brew gem install octopress --pre

fails with

Could not find a valid gem 'octopress'

Provide a way to use an alternate "system" ruby

Some gems can't be used with the old version of ruby that ships on the latest OSX. Homebrew can install an alternate "system" ruby with brew install ruby to $HOMEBREW_PREFIX/opt/ruby/bin. It would be convenient to provide a way to detect or select that alternate ruby and prefer it over the system ruby at /usr/bin/ruby.

gem install brew-gem + brew-gem install brew-gem causes brew link failure

#23 โ†’ 9690c9c

gem install brew-gem followed by brew-gem install brew-gem, as suggested in README.md, causes the brew link step to fail due to an existing brew-gem executable in /usr/local/bin, which was installed by RubyGems:

$ gem install brew-gem
Fetching: brew-gem-0.7.2.gem (100%)
Successfully installed brew-gem-0.7.2
Parsing documentation for brew-gem-0.7.2
Installing ri documentation for brew-gem-0.7.2
Done installing documentation for brew-gem after 6 seconds
1 gem installed
$ brew-gem install brew-gem
==> Fetching brew-gem from gem source
Fetching: brew-gem-0.7.2.gem (100%)
Downloaded brew-gem-0.7.2
Warning: Cannot verify integrity of brew-gem-0.7.2.gem
A checksum was not provided for this resource
For your reference the SHA256 is: 7e9621043536b27d4423c40da3a71c5d1546963e671b68ecaa2d27129014d5c7
==> gem install /Library/Caches/Homebrew/brew-gem-0.7.2.gem --no-ri --no-rdoc --no-wrapper --no-user-install --install-dir /usr/local/Cellar/gem-brew-
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink bin/brew-gem
Target /usr/local/bin/brew-gem
already exists. You may want to remove it:
  rm '/usr/local/bin/brew-gem'

To force the link and overwrite all conflicting files:
  brew link --overwrite gem-brew-gem

To list all files that would be deleted:
  brew link --overwrite --dry-run gem-brew-gem

Possible conflicting files are:
/usr/local/bin/brew-gem
==> Summary
๐Ÿบ  /usr/local/Cellar/gem-brew-gem/0.7.2: 19 files, 24K, built in 14 seconds

If you have installed brew-gem as gem, do you really need to brew-gem it? Wouldn't it be redundant? On the other hand one might want brew-gem to be in the Cellar as well...

The Warning: Cannot verify integrity of brew-gem-0.7.2.gem A checksum was not provided for this resource warning should probably be a separate issue (like #24)... ;-)

Any objections to becoming the "official" repo for the homebrew formula?

This is the most (only?) actively maintained fork of this project. Normally when the original project disappears, we would remove the formula entirely, but there is still interest in this project, so I don't think people would like that.

I would like to point the brew-gem formula at this repository, but I wanted to run it by you first. Any objections or concerns?

request new release

๐Ÿ‘‹ any timeline for a new release? Also can you mark the 1.0.0 as the latest release vs the 0.9.0 one. Thanks!

Autodetect or configurable Ruby path

Based on #28, currently the user has to pass "--homebrew-ruby" for every brew gem command in case they are using a custom Ruby install.

This request is for the default Ruby path be auto-detected from the PATH environment variable, or otherwise be configurable (~/.brew_gem) so that the flag can be omitted.

brew gem install neovim requires gcc@5 formula and crashes if the formula is absent

Ubuntu 18.04:
/usr/bin/gcc version 10
gcc-7 /home/linuxbrew/.linuxbrew/bin/gcc-7
/usr/bin/gcc-10
gcc-11 /home/linuxbrew/.linuxbrew/bin/gcc-11

brew gem install neovim works only if you have gcc@5 preinstalled.
Now homebrew comes with /home/linuxbrew/.linuxbrew/bin/gcc version 11 not 5, but installation happens with
this command (see it in /home/linuxbrew/.linuxbrew/Cellar/gem-neovim/0.9.0/extensions/x86_64-linux/3.0.0/msgpack-1.4.2/mkmf.log): "gcc-5 ....."

ENV vars not being passed in

I have noticed many scenarios where the flag mentioned here https://github.com/sportngin/brew-gem#troubleshooting is not getting passed in when running brew gem upgrade or brew gem install. I have gotten around it by doing the HOMEBREW_DEBUG=1 in the following manner:

$> HOMEBREW_DEBUG=1 brew gem install some_gem
/usr/local/Library/brew.rb (Formulary::FromPathLoader): loading /usr/local/Cellar/some_gem.rb
==> Fetching some_gem from gem source
==> gem install /Library/Caches/Homebrew/some_gem-0.0.1.gem --no-rdoc --no-ri --no-user-install --install-dir /usr/local/Cellar/some_gem/0.0.1 --bindir /usr/local/Cellar/some_gem/0.0.1/bin

Gem files will remain installed in /usr/local/Cellar/some_gem/0.0.1/gems/nokogiri-1.6.2.1 for inspection.
Results logged to /usr/local/Cellar/some_gem/0.0.1/gems/nokogiri-1.6.2.1/ext/nokogiri/gem_make.out
/usr/local/Library/Homebrew/formula.rb:611:in `system'
BuildError: Failed executing: gem install /Library/Caches/Homebrew/some_gem-0.0.1.gem --no-rdoc --no-ri --no-user-install --install-dir /usr/local/Cellar/some_gem/0.0.1 --bindir /usr/local/Cellar/some_gem/0.0.1/bin
1. raise
2. ignore
3. backtrace
4. irb
5. shell
Choose an action: 5
When you exit this shell, you will return to the menu.
bash-3.2$ ADD_SOME_ENV_FLAGS=1 gem install /Library/Caches/Homebrew/some_gem-0.0.1.gem --no-rdoc --no-ri --no-user-install --install-dir /usr/local/Cellar/some_gem/0.0.1 --bindir /usr/local/Cellar/some_gem/0.0.1/bin
Successfully installed some_gem-0.0.1
1 gems installed
nicklamuro@Nicks-Macbook-Air: some_gem-nmgD $ exit
exit
1. raise
2. ignore
3. backtrace
4. irb
5. shell
Choose an action: 2
Fixing /usr/local/Cellar/some_gem/0.0.1/bin/some_gem permissions from 644 to 555
๐Ÿบ  /usr/local/Cellar/some_gem/0.0.1: 1230 files, 24M, built in 6.2 minutes
$>

The key steps here is pop into a shell (option 5) and execute the failing command, then exit the subshell, and choose "ignore" (option 2) and it should continue where it left off.

This really should be fixed, but for now this is the workaround.

Problem with installing Jeykll

I'm trying to install Jekyll and I'm getting this error. I don't know if #50 might be related but seems similar in some aspects.

$brew gem install jekyll --homebrew-ruby                                                                                   
==> Fetching jekyll from gem source
Error: An exception occurred within a child process:
  Errno::ENOENT: No such file or directory @ rb_sysopen - /Users/TheLobster/Library/Caches/Homebrew/jekyll-3.8.5.gem
$env HOMEBREW_DEBUG=1 brew gem install jekyll                                                                                   
/usr/local/Homebrew/Library/Homebrew/brew.rb (Formulary::FromPathLoader): loading /var/folders/sv/cmvmg3h10bb03_7qqfr2m85w0000gn/T/gem-jekyll.rb
/usr/local/Homebrew/Library/Homebrew/build.rb (Formulary::FromPathLoader): loading /var/folders/sv/cmvmg3h10bb03_7qqfr2m85w0000gn/T/gem-jekyll.rb
==> Fetching jekyll from gem source
Error: An exception occurred within a child process:
  Errno::ENOENT: No such file or directory @ rb_sysopen - /Users/TheLobster/Library/Caches/Homebrew/jekyll-3.8.5.gem
/usr/local/Homebrew/Library/Homebrew/unpack_strategy.rb:11:in `binread'
/usr/local/Homebrew/Library/Homebrew/unpack_strategy.rb:11:in `binread'
/usr/local/Homebrew/Library/Homebrew/unpack_strategy.rb:11:in `magic_number'
/usr/local/Homebrew/Library/Homebrew/unpack_strategy/fossil.rb:12:in `can_extract?'
/usr/local/Homebrew/Library/Homebrew/unpack_strategy.rb:97:in `block in detect'
/usr/local/Homebrew/Library/Homebrew/unpack_strategy.rb:97:in `each'
/usr/local/Homebrew/Library/Homebrew/unpack_strategy.rb:97:in `find'
/usr/local/Homebrew/Library/Homebrew/unpack_strategy.rb:97:in `detect'
/usr/local/Homebrew/Library/Homebrew/download_strategy.rb:53:in `stage'
/usr/local/Homebrew/Library/Homebrew/resource.rb:99:in `block in unpack'
/usr/local/Homebrew/Library/Homebrew/resource.rb:173:in `block in mktemp'
/usr/local/Homebrew/Library/Homebrew/mktemp.rb:55:in `block in run'
/usr/local/Homebrew/Library/Homebrew/mktemp.rb:55:in `chdir'
/usr/local/Homebrew/Library/Homebrew/mktemp.rb:55:in `run'
/usr/local/Homebrew/Library/Homebrew/resource.rb:172:in `mktemp'
/usr/local/Homebrew/Library/Homebrew/resource.rb:98:in `unpack'
/usr/local/Homebrew/Library/Homebrew/resource.rb:75:in `stage'
/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/forwardable.rb:202:in `stage'
/usr/local/Homebrew/Library/Homebrew/formula.rb:2062:in `stage'
/usr/local/Homebrew/Library/Homebrew/formula.rb:1131:in `brew'
/usr/local/Homebrew/Library/Homebrew/build.rb:114:in `block in install'
/usr/local/Homebrew/Library/Homebrew/utils.rb:523:in `with_env'
/usr/local/Homebrew/Library/Homebrew/build.rb:111:in `install'
/usr/local/Homebrew/Library/Homebrew/build.rb:192:in `<main>'

Feature request: `reinstall`

Hey, thanks for this project. I have a gem installed with C-bindings. When the Homebrew Ruby is upgraded, the absolute path to the dylib files changes:

Ignoring eventmachine-1.2.7 because its extensions are not built. Try: gem pristine eventmachine --version 1.2.7
Ignoring ffi-1.15.5 because its extensions are not built. Try: gem pristine ffi --version 1.15.5
Ignoring http_parser.rb-0.8.0 because its extensions are not built. Try: gem pristine http_parser.rb --version 0.8.0
Ignoring sassc-2.4.0 because its extensions are not built. Try: gem pristine sassc --version 2.4.0
<internal:/usr/local/Cellar/ruby/3.1.0/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require': dlopen(/usr/local/Cellar/gem-jekyll/4.2.1/gems/ffi-1.15.5/lib/ffi_c.bundle, 9): Library not loaded: /usr/local/opt/ruby/lib/libruby.3.0.dylib (LoadError)
  Referenced from: /usr/local/Cellar/gem-jekyll/4.2.1/gems/ffi-1.15.5/lib/ffi_c.bundle
  Reason: image not found - /usr/local/Cellar/gem-jekyll/4.2.1/gems/ffi-1.15.5/lib/ffi_c.bundle
	from <internal:/usr/local/Cellar/ruby/3.1.0/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
	from /usr/local/Cellar/gem-jekyll/4.2.1/gems/ffi-1.15.5/lib/ffi.rb:5:in `rescue in <top (required)>'
	from /usr/local/Cellar/gem-jekyll/4.2.1/gems/ffi-1.15.5/lib/ffi.rb:2:in `<top (required)>'
	from <internal:/usr/local/Cellar/ruby/3.1.0/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
	from <internal:/usr/local/Cellar/ruby/3.1.0/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
	from /usr/local/Cellar/gem-jekyll/4.2.1/gems/sassc-2.4.0/lib/sassc/native.rb:3:in `<top (required)>'
	from /usr/local/Cellar/gem-jekyll/4.2.1/gems/sassc-2.4.0/lib/sassc.rb:31:in `require_relative'
	from /usr/local/Cellar/gem-jekyll/4.2.1/gems/sassc-2.4.0/lib/sassc.rb:31:in `<top (required)>'
	from <internal:/usr/local/Cellar/ruby/3.1.0/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
	from <internal:/usr/local/Cellar/ruby/3.1.0/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
	from /usr/local/Cellar/gem-jekyll/4.2.1/gems/jekyll-sass-converter-2.1.0/lib/jekyll/converters/scss.rb:3:in `<top (required)>'
	from <internal:/usr/local/Cellar/ruby/3.1.0/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
	from <internal:/usr/local/Cellar/ruby/3.1.0/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
	from /usr/local/Cellar/gem-jekyll/4.2.1/gems/jekyll-sass-converter-2.1.0/lib/jekyll-sass-converter.rb:4:in `<top (required)>'
	from <internal:/usr/local/Cellar/ruby/3.1.0/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
	from <internal:/usr/local/Cellar/ruby/3.1.0/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
	from /usr/local/Cellar/gem-jekyll/4.2.1/gems/jekyll-4.2.1/lib/jekyll.rb:195:in `<top (required)>'
	from <internal:/usr/local/Cellar/ruby/3.1.0/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
	from <internal:/usr/local/Cellar/ruby/3.1.0/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
	from /usr/local/Cellar/gem-jekyll/4.2.1/gems/jekyll-4.2.1/exe/jekyll:8:in `<top (required)>'
	from /usr/local/bin/jekyll:6:in `load'
	from /usr/local/bin/jekyll:6:in `<main>'
<internal:/usr/local/Cellar/ruby/3.1.0/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require': cannot load such file -- 3.1/ffi_c (LoadError)
	from <internal:/usr/local/Cellar/ruby/3.1.0/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
	from /usr/local/Cellar/gem-jekyll/4.2.1/gems/ffi-1.15.5/lib/ffi.rb:3:in `<top (required)>'
	from <internal:/usr/local/Cellar/ruby/3.1.0/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
	from <internal:/usr/local/Cellar/ruby/3.1.0/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
	from /usr/local/Cellar/gem-jekyll/4.2.1/gems/sassc-2.4.0/lib/sassc/native.rb:3:in `<top (required)>'
	from /usr/local/Cellar/gem-jekyll/4.2.1/gems/sassc-2.4.0/lib/sassc.rb:31:in `require_relative'
	from /usr/local/Cellar/gem-jekyll/4.2.1/gems/sassc-2.4.0/lib/sassc.rb:31:in `<top (required)>'
	from <internal:/usr/local/Cellar/ruby/3.1.0/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
	from <internal:/usr/local/Cellar/ruby/3.1.0/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
	from /usr/local/Cellar/gem-jekyll/4.2.1/gems/jekyll-sass-converter-2.1.0/lib/jekyll/converters/scss.rb:3:in `<top (required)>'
	from <internal:/usr/local/Cellar/ruby/3.1.0/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
	from <internal:/usr/local/Cellar/ruby/3.1.0/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
	from /usr/local/Cellar/gem-jekyll/4.2.1/gems/jekyll-sass-converter-2.1.0/lib/jekyll-sass-converter.rb:4:in `<top (required)>'
	from <internal:/usr/local/Cellar/ruby/3.1.0/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
	from <internal:/usr/local/Cellar/ruby/3.1.0/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
	from /usr/local/Cellar/gem-jekyll/4.2.1/gems/jekyll-4.2.1/lib/jekyll.rb:195:in `<top (required)>'
	from <internal:/usr/local/Cellar/ruby/3.1.0/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
	from <internal:/usr/local/Cellar/ruby/3.1.0/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
	from /usr/local/Cellar/gem-jekyll/4.2.1/gems/jekyll-4.2.1/exe/jekyll:8:in `<top (required)>'
	from /usr/local/bin/jekyll:6:in `load'
	from /usr/local/bin/jekyll:6:in `<main>'

In order to fix this, I ran brew gem uninstall jekyll && brew gem install jekyll. It would be nice to coalesce these into a single command for easier reinstallation.

test suite fails (for surprising reasons) when rspec is run outside of bundle

10 of 13 specs fail when rspec is run outside the context of the bundle. https://gist.github.com/anonymous/79e94344c43d859f061f9edbc9942778

Not technically an issue because rspec should be run within the bundle. However, the errors are not what I would have expected:

NameError:
       uninitialized constant CleanEnv::Bundler
     # ./spec/support/aruba.rb:11:in `run'
     # ./spec/support/aruba.rb:27:in `run_complete'
     # ./spec/brew/gem_spec.rb:4:in `brew_gem'
     # ./spec/brew/gem_spec.rb:7:in `block (2 levels) in <top (required)>'
     # ./spec/brew/gem_spec.rb:34:in `block (3 levels) in <top (required)>'

I think it's worthwhile to investigate this error because it could be symptomatic of a deeper issue.

Request for reopening of issue #25

Issue #25 has been closed, however, the issue has not been resolved. Could you please reopen the issue. I have added a comment: #25 (comment) explaining why the issue has not been resolved.

Once issue #25 has been reopened, this issue (request for reopening of issue #25) can be closed.

How to define ruby dependencies in brew?

Would it be possible to tell homebrew to treat e.g. fpm (a rubygem) as a dependency that can only be statisfied through brew-gem? Normally dependencies would be defined with depends_on, but I'm not sure how this should work.

Spec fails when GEM_ env var is set

Fresh clone on a fresh ruby (matching .ruby-version; presently 2.3.1) with a fresh bundle-install has spec failure:

Brew::Gem
  aruba environment
    doesn't contain any Bundler or RVM stuff (FAILED - 1)

This test seems susceptible to users have any env vars matching GEM_. Like, say,

GEMRC=/Users/jasonkarns/.config/gem/config
GEM_SPEC_CACHE=/usr/local/cache/gem/specs

Cannot run installed "mono" gems (ie: fastlane)

Installing works:

brew gem install fastlane --homebrew-ruby
==> Fetching fastlane from gem source
Fetching: fastlane-2.9.0.gem (100%)
Downloaded fastlane-2.9.0
Warning: Cannot verify integrity of fastlane-2.9.0.gem
A checksum was not provided for this resource
For your reference the SHA256 is: 5dbede0e3f03daa846d3f075777632989aaabd267b3ea3be3ddf37a9dc7f9503
==> /usr/local/bin/gem install ~/Library/Caches/Homebrew/fastlane-2.9.0.gem --no-ri --no-rdoc --no-wrapper --n
๐Ÿบ  /usr/local/Cellar/gem-fastlane/2.9.0: 4,004 files, 62.8M, built in 1 minute 25 seconds

But executing the binary fails:

$ fastlane init
/usr/local/Cellar/ruby/2.3.1_2/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- fastlane/cli_tools_distributor (LoadError)
	from /usr/local/Cellar/ruby/2.3.1_2/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
	from /usr/local/Cellar/gem-fastlane/2.9.0/gems/fastlane-2.9.0/bin/fastlane:4:in `<top (required)>'
	from /usr/local/bin/fastlane:5:in `load'
	from /usr/local/bin/fastlane:5:in `<main>'

Doesn't install man pages for homebrew

after brew gem install kramdown I have /Users/dave/brew/Cellar/gem-kramdown/1.12.0/gems/kramdown-1.12.0/man/man1/kramdown.1, but man kramdown doesn't work.

This fixed it for me. brew-gem should do something similar automatically.

ln -s /Users/dave/brew/Cellar/gem-kramdown/1.12.0/gems/kramdown-1.12.0/man/man1/* ~/brew/share/man/man1

Presumably this is broken for info files as well.

Issues with brew-bundle

I'm curious if anyone has any workarounds for deailing with brew-bundle for brew-gem installed utilities.

brew bundle dump will dump a "formula" named gem-foo, which then fails during a subsequent brew bundle

Has anyone attempted monkey patching support for brew-gem into brew-bundle? I'd be more interested in a format that would make the bundle install process work. If that were possible, then it would be a (fairly) simple matter of manually editing the generated Brewfile.

Neens to be fixed with latest Homebrew Latest with Homebrew's 3.2.0 ruby

HOMEBREW_VERSION: 3.6.18-54-g3e25789
Homebrew Ruby: 2.6.8 => /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/portable-ruby/2.6.8_1/bin/ruby

which -a ruby (when I removed rbenv from the env it also n/w)

/home/alessio/.rbenv/shims/ruby # 3.2.0
/home/linuxbrew/.linuxbrew/bin/ruby  # 3.2.0
/usr/bin/ruby

brew gem install neovim

==> Fetching gem-neovim
==> Fetching neovim from gem source
`RubyGems' were not loaded.
`error_highlight' was not loaded.
`did_you_mean' was not loaded.
`syntax_suggest' was not loaded.
/home/linuxbrew/.linuxbrew/opt/ruby/bin/gem:8:in `require': cannot load such file -- rubygems/gem_runner (LoadError)
	from /home/linuxbrew/.linuxbrew/opt/ruby/bin/gem:8:in `<main>'
==> Fetching neovim from gem source
`RubyGems' were not loaded.
`error_highlight' was not loaded.
`did_you_mean' was not loaded.
`syntax_suggest' was not loaded.
/home/linuxbrew/.linuxbrew/opt/ruby/bin/gem:8:in `require': cannot load such file -- rubygems/gem_runner (LoadError)
	from /home/linuxbrew/.linuxbrew/opt/ruby/bin/gem:8:in `<main>'
Error: An exception occurred within a child process:
  Errno::ENOENT: No such file or directory @ rb_sysopen - /home/user/.cache/Homebrew/neovim-0.9.0.gem

Uninstalling the lunchy gem does not properly unlink the lunchy bin file

Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink bin/lunchy
Target /usr/local/bin/lunchy
is a symlink belonging to lunchy. You can unlink it:
 brew unlink lunchy

To force the link and overwrite all conflicting files:
 brew link --overwrite gem-lunchy

To list all files that would be deleted:
 brew link --overwrite --dry-run gem-lunchy

Possible conflicting files are:
/usr/local/bin/lunchy -> /usr/local/Cellar/lunchy/0.10.4/bin/lunchy
==> Summary
:beer:  /usr/local/Cellar/gem-lunchy/0.10.4: 16 files, 30.6K, built in 6 seconds

asciidoctor-diagram

The following worked well:

brew install brew-gem
brew gem install asciidoctor-diagram

However, using asciidoctor-diagram doesn't seem to work:

asciidoctor --trace -b html5 -r asciidoctor-diagram index.adoc
Traceback (most recent call last):
        10: from /opt/brew/Cellar/asciidoctor/2.0.13/libexec/bin/asciidoctor:23:in `<main>'
         9: from /opt/brew/Cellar/asciidoctor/2.0.13/libexec/bin/asciidoctor:23:in `load'
         8: from /opt/brew/Cellar/asciidoctor/2.0.13/libexec/gems/asciidoctor-2.0.13/bin/asciidoctor:13:in `<top (required)>'
         7: from /opt/brew/Cellar/asciidoctor/2.0.13/libexec/gems/asciidoctor-2.0.13/bin/asciidoctor:13:in `new'
         6: from /opt/brew/Cellar/asciidoctor/2.0.13/libexec/gems/asciidoctor-2.0.13/lib/asciidoctor/cli/invoker.rb:24:in `initialize'
         5: from /opt/brew/Cellar/asciidoctor/2.0.13/libexec/gems/asciidoctor-2.0.13/lib/asciidoctor/cli/options.rb:34:in `parse!'
         4: from /opt/brew/Cellar/asciidoctor/2.0.13/libexec/gems/asciidoctor-2.0.13/lib/asciidoctor/cli/options.rb:275:in `parse!'
         3: from /opt/brew/Cellar/asciidoctor/2.0.13/libexec/gems/asciidoctor-2.0.13/lib/asciidoctor/cli/options.rb:275:in `each'
         2: from /opt/brew/Cellar/asciidoctor/2.0.13/libexec/gems/asciidoctor-2.0.13/lib/asciidoctor/cli/options.rb:277:in `block in parse!'
         1: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- asciidoctor-diagram (LoadError)

What can I do to make this work?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.