scttnlsn / dandelion

Incremental Git repository deployment.
http://scttnlsn.github.io/dandelion
MIT License
738 stars 60 forks source link

macOS High Sierra installation #163

Closed peterolle closed 6 years ago

peterolle commented 6 years ago

This is what I get using "sudo gem install dandelion":

Building native extensions.  This could take a while...
ERROR:  Error installing dandelion:
    ERROR: Failed to build gem native extension.

    current directory: /Library/Ruby/Gems/2.3.0/gems/rugged-0.23.3/ext/rugged
/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby -r ./siteconf20170723-3120-jem2we.rb extconf.rb
mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/include/ruby.h

extconf failed, exit code 1

Gem files will remain installed in /Library/Ruby/Gems/2.3.0/gems/rugged-0.23.3 for inspection.
Results logged to /Library/Ruby/Gems/2.3.0/extensions/universal-darwin-17/2.3.0/rugged-0.23.3/gem_make.out

Is there something extra I need to do?

Thank you.

scttnlsn commented 6 years ago

Looks like you're missing the Ruby development headers on your system. I believe for OS X these come bundled in an Xcode package called "command line tools". You should try installing those first.

peterolle commented 6 years ago

Thank you Scott.

I just downloaded and install them again, then brew, then pkg-config and cmake and this is what I get:

Building native extensions.  This could take a while...
Successfully installed rugged-0.23.3
Fetching: dandelion-0.5.0.gem (100%)
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /usr/bin directory.

This is using "sudo gem install dandelion".

Any idea how to make it work ?

scttnlsn commented 6 years ago

Check the permissions of /usr/bin. Did you remove all write permissions from this directory? Make sure that root can write a file there.

If you don't want to use your system Ruby then I can highly recommend https://github.com/rbenv/rbenv You can install isolated Ruby versions without needing sudo.

peterolle commented 6 years ago

I did not change any permissions, I only did the brew, pkg-config and cmake installation. Nothing else.

Here are the permissions in usr:

drwxr-xr-x@  10 root  wheel    320 26 jul 18:20 .
drwxr-xr-x@  32 root  wheel   1024 24 jul 19:50 ..  
drwxr-xr-x  975 root  wheel  31200 24 jul 19:34 bin  
drwxr-xr-x  262 root  wheel   8384 26 jul 18:18 include  
drwxr-xr-x  309 root  wheel   9888 26 jul 18:20 lib  
drwxr-xr-x  233 root  wheel   7456 24 jul 19:34 libexec  
drwxr-xr-x   14 root  wheel    448 26 jul 18:25 local  
drwxr-xr-x  246 root  wheel   7872 24 jul 19:34 sbin  
drwxr-xr-x   46 root  wheel   1472 14 jun 08:59 share  
drwxr-xr-x    5 root  wheel    160  1 jun 05:57 standalone  

Thank you.

peterolle commented 6 years ago

It seems System Integrity Protection in macOS will prevent this for working, I installed it in /usr/local/bin with no problems.

I'll continue testing to see if everything works and if something comes up I will update this.

peterolle commented 6 years ago

Not working, I just tried a first deploy and this is what I get:

/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/psych.rb:379:in `parse': (<unknown>): found character that cannot start any token while scanning for the next token at line 8 column 1 (Psych::SyntaxError)
    from /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/psych.rb:379:in `parse_stream'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/psych.rb:327:in `parse'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/psych.rb:254:in `load'
    from /Library/Ruby/Gems/2.3.0/gems/dandelion-0.5.0/lib/dandelion/config.rb:34:in `load'
    from /Library/Ruby/Gems/2.3.0/gems/dandelion-0.5.0/lib/dandelion/config.rb:10:in `initialize'
    from /Library/Ruby/Gems/2.3.0/gems/dandelion-0.5.0/lib/dandelion/cli.rb:15:in `new'
    from /Library/Ruby/Gems/2.3.0/gems/dandelion-0.5.0/lib/dandelion/cli.rb:15:in `config'
    from /Library/Ruby/Gems/2.3.0/gems/dandelion-0.5.0/lib/dandelion/cli.rb:21:in `adapter'
    from /Library/Ruby/Gems/2.3.0/gems/dandelion-0.5.0/lib/dandelion/cli.rb:37:in `workspace'
    from /Library/Ruby/Gems/2.3.0/gems/dandelion-0.5.0/lib/dandelion/cli.rb:69:in `execute!'
    from /Library/Ruby/Gems/2.3.0/gems/dandelion-0.5.0/bin/dandelion:8:in `<top (required)>'
    from /usr/local/bin/dandelion:23:in `load'
    from /usr/local/bin/dandelion:23:in `<main>'

Any idea how to fix it ?

scttnlsn commented 6 years ago

Looks like you have a syntax error in your dandelion.yml file

scttnlsn commented 6 years ago

Did you resolve this? Please re-open if you still believe there's an issue with Dandelion that needs to be addressed. Thanks!

peterolle commented 6 years ago

Resolved, thank you. By some reason tabs instead of spaces were not working in the dandelion.yml file.

All good now, thanks again.

scttnlsn commented 6 years ago

Great! Yeah, no tabs allowed in YAML as far as I know.