CodeDeploy agent install Error :: /usr/bin/env : ruby Not found - ruby

I am trying to install codeDeploy agent on CentOS6.
What I did
$ > wget https://aws-codedeploy-ap-northeast-2 .s3.amazonaws.com/latest/install
$ > chmod +x ./install
$ > sudo ./install auto
Not found ruby error occurs, So I installed ruby 2.4.2 via tar file. (executable file located in /usr/local/bin)
After that when I try sudo ./install auto, It returns error message
/usr/bin/env: ruby: No such file or directory
When I open install file which download via wget, it starts with #!/usr/bin/env ruby.
I change this to #! /usr/local/bin ruby than it returns sudo: unable to execute ./install: Permission denied without asking password.
Is there any step I forgot or extra job to escape this problem?
Thanks.

Try symlinking the ruby installation to /use/bin/ruby and then run the installer. If the symlink is in place you shouldn't need to update the shebang in install script.

Related

Complete installation guide for NIST Biometric Image Software (NBIS)?

When trying to install NBIS I get the following error on linux, when running ./setup.sh:
zsh: permission denied: ./setup.sh
and the following when running make config:
/bin/sh: 3: ./configure: Permission denied
/home/...../Downloads/Rel_5.0.0/buildutil/png_libs.mak:54: recipe for target 'config' failed
make[3]: *** [config] Error 1
I used ARK to extract the zip file.
What am I doing wrong?
Use the unzip utility to extract the .zip file containing the NBIS source. unzip maintains the file permission structure of the zip file contents. Then you can install as per normal.
Install guide
unzip nbis_v5_0_0.zip
cd Rel_5.0.0
sudo mkdir /usr/local/NBIS/Main
# Ensure a absolute path is provided to setup.sh
./setup.sh /usr/local/NBIS/Main --64 #or --32 if you have a 32 bit system
make config
make it
sudo make install LIBNBIS=yes
cd ..
rm -r -f Rel_5.0.0
I don't have access to the zip/can't use unzip
You can change the permissions of the relevant files with:
chmod ug+x ./setup.sh
chmod ug+x ./png/src/lib/png/configure
chmod ug+x ./png/src/lib/zlib/configure
Then you can install as per normal.
I installed first gcc and x11 library in order to avoid error:
A gcc library
sudo apt-get install cmake libc6-dev libc6-dev-i386 g++-multilib
X11 library
sudo apt-get install libx11-dev
Then I unzip nbis_v5_0_0
cd Rel_5.0.0
./setup.sh /path_to_run --64 (or --32)
sudo make config
sudo make it
sudo install LIBNBIS=yes

Jenkins multibranch plugin and RVM

I'm trying to use RVM with the jenkins multibranch plugin. I keep running into a problem with RVM not being found. I'm thinking it's probably due to the fact the jenkins user doesn't have a true shell.
I installed RVM by using sudo su -s /bin/bash jenkins then following the RVM installation instructions.
My Jenkins file uses:
sh 'source ~/.bashrc'
sh 'rvm use 2.2.1#my-project'
The bashrc file looks like:
export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
When I commit a change and the build runs, I get this error:
/var/lib/jenkins/workspace/Chalk Web/develop#tmp/durable-27a33a52/script.sh: line 2: rvm: command not found
If I ssh to the machine, and run the sudo su -s /bin/bash jenkins command I can run RVM fine. However, I assume that jenkins doesn't have a login shell when it's running the build. How can I allow Jenkins to see RVM?
Thanks in advance!
There is a way to make sure all your shell commands are executed with a login shell, and this solved my issue:
sh '''#!/bin/bash -l
rvm use 2.2.1#my-project
bundle install
etc...
'''

need help installing drush on mac

I'm on a mac. And I user MAMP a lot. I'm pretty new to command line and I'm trying to install Drush. I see I need to install composer first (according to what I read at drush-ops, so I did. Here's the commands I put in:
my-MacBook-Pro:~ mycomputername$ curl -s https://getcomposer.org/installer | php
#!/usr/bin/env php
All settings correct for using Composer
Downloading...
Composer successfully installed to: /Users/myname/composer.phar
Use it: php composer.phar
my-MacBook-Pro:~ mycomputername$ mv composer.phar /usr/local/bin/composer
mv: rename composer.phar to /usr/local/bin/composer: Permission denied
my-MacBook-Pro:~ mycomputername$ sudo mv composer.phar /usr/local/bin/composer
Password:
after which I did a command "composer about" to check and I got something back so I know it installed. so when i entered:
my-MacBook-Pro:~ mycomputername$ composer global require drush/drush:6.*
Changed current directory to /Users/myname/.composer
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Installing drush/drush (6.2.0)
Downloading: 100%
Writing lock file
Generating autoload files
...and did a "drush status" I got:
my-MacBook-Pro:~ mycomputername$ drush status
-bash: drush: command not found
...so apparently it installed but I should be able to find it. What should I do next? do i need to create and alias or what?
When running drush status you should get something like this
PHP executable : /Applications/MAMP/bin/php/php5.5.10/bin/php
PHP configuration : /Applications/MAMP/bin/php/php5.5.10/conf/php.ini
PHP OS : Darwin
Drush version : 6.2.0
Drush configuration :
Drush alias files :
I installed drush doing just this command
brew install drush
Brew is very helpful to install things in command line, I recommend you install brew.
(http://brew.sh/)
Much simpler answer! Just quote the version string :) You don't need to switch to Brew from Composer.
composer global require "drush/drush:7.*"
Here's more info about using Composer to manage Drush...
http://whaaat.com/installing-drush-8-using-composer
Download drush.tar.gz to your desktop (or wherever)
Jump across to the Terminal
cd ~/Desktop
Extract it with
tar -zxf drush.tar.gz
Move it to /usr/local/lib
sudo mv drush /usr/local/lib/
Make it executable
sudo chmod u+x /usr/local/lib/drush/drush
Then stick it in /usr/bin/ so that you can run it from anywhere
sudo ln -s /usr/local/lib/drush/drush /usr/bin/drush

Errno::EACCES: Permission denied when installing gems via gitlab

I'm trying to setup gitlab and thus install some gems from another user account using sudo,
but I'm constantly getting Permission denied error.
sudo -u gitlab -H bundle install --deployment --without development test postgres
> Using ... ( a lot of successful gems there )
> Using pygments.rb (0.3.2) from https://github.com/gitlabhq/pygments.rb.git (at master)
> Errno::EACCES: Permission denied - pygments.rb-0.3.2.gem
> An error occurred while installing pygments.rb (0.3.2), and Bundler cannot continue.
> Make sure that `gem install pygments.rb -v '0.3.2'` succeeds before bundling.\
sudo -u gitlab -H gem install pygments.rb -v '0.3.2'
> Successfully installed pygments.rb-0.3.2
> 1 gem installed
> Installing ri documentation for pygments.rb-0.3.2...
> Installing RDoc documentation for pygments.rb-0.3.2...
# no matter how many times I run this command, I always get the same output
# as if the gem installation doesn't stick
# I've tried to chmod
chmod 777 -R /usr/local/lib/ruby
# then Again
sudo -u gitlab -H bundle install --deployment --without development test postgres
# same result, Errno::EACCES: Permission denied - pygments.rb-0.3.2.gem
Lain suggested to try to install the bundles into another sub directory. When that worked out, it became clear the problem was about permissions in the current directory.
Executing chown -R gitlab:gitlab . has solved the problem.
In the gitlab installation guide there is a gem install command preceding our story that was ran as root and probably the gemfile or some other file had permissions change during that.
This is a permissions bug in ruby-2.0.0-p195 rvm with bundle install
are you using rvm? did you try chmod with sudo?
chmod 755 (or 777) ~/.rvm/gems/ruby-2.0.0-p195/build_info/
I did the following and got things working.
I changed the permission for the Gemfile. i.e. chmod 755 Gemfile
Then I did a sudo bundle install. This got things working and all the gems got installed. I could then start my app by rails server
Make sure your Gemfile.lock is owned by the user running the command
Although Alex's answer is correct,this worked for me as well
sudo chown -R git:git /path/to/external/volume
I'm using Digital Ocean's Gitlab Image

Heroku command not found

After installing Heroku Toolbelt, in terminal on Mac when trying to run the following command:
heroku
I get the error:
bash: heroku: command not found
When I do:
gem environment
I get:
- RUBYGEMS VERSION: 1.3.6
- RUBY VERSION: 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin11.0]
- INSTALLATION DIRECTORY: /Library/Ruby/Gems/1.8
- RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
- EXECUTABLE DIRECTORY: /usr/bin
- RUBYGEMS PLATFORMS:
- ruby
- universal-darwin-11
- GEM PATHS:
- /Library/Ruby/Gems/1.8
- /Users/Bart/.gem/ruby/1.8
- /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- http://rubygems.org/
I've tried adding several paths to $PATH, but nothing works...
Manually adding the symlink after installing Toolbelt fixed it for me.
sudo ln -s /usr/local/heroku/bin/heroku /usr/bin/heroku
(This answer is for typical other persons, that may land here, and that may find it useful)
If you come to install heroku snap using snap command through the command line as follow
sudo snap install heroku --classic (the thing you will find in the heroku doc).
And that after installation the heroku command isn't available. Then here the solution and the why:
First know that when you install a new snap, it get added to /snap folder. A new folder with the snap name is created (/snap/heroku), and the executable file for the command is added to /snap/bin (/snap/bin/heroku).
Try
/snap/bin/heroku help
and you will find it work very well.
Solution: So you have just to add /snap/bin to your PATH environement variable.
Heroku is supposing that it's already done. I don't know, if that should have been done automatically at the installation of snapd package. But any way, that's it.
For how to add new paths to the PATH environment variable look at the links bellow, to get a good idea (case you don't know that already):
https://stackoverflow.com/a/26962251/7668448
https://askubuntu.com/questions/866161/setting-path-variable-in-etc-environment-vs-profile
https://www.computerhope.com/issues/ch001647.htm
https://hackprogramming.com/2-ways-to-permanently-set-path-variable-in-ubuntu/
http://www.troubleshooters.com/linux/prepostpath.htm
https://serverfault.com/questions/166383/how-set-path-for-all-users-in-debian
Here links about why you need to logout and login back or reboot
Setting environment variable globally without restarting Ubuntu
https://superuser.com/questions/339617/how-to-reload-etc-environment-without-rebooting
Here an example:
sudo nano /etc/environment
i chose to add the path through /etc/environment (remember you can't use shell commands).
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/node-v9.6.1-linux-x64/bin:/snap/bin
You can see i add it at the end (that simple).
Reboot your computer or logout and login back (PAM script handle the construction of the PATH from /etc/environment at session creation time)
If You want to have the effect take place right away, execute:
source /etc/environment && export PATH
(it affect only the current opened shell and the children processes)
Here another example doing it in /etc/profile:
if [ "`id -u`" -eq 0 ]; then
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
else
PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
fi
PATH="$PATH:/snap/bin"
export PATH
I just added one line (the one before the last, and note that a portion from the whole file (/etc/profile)).
Reboot or logout and login back.
Execute :
source /etc/profile
to be operational right away (affect the current shell and the children processes).
There is different ways to add to PATH, even an infinity of ways if we give our imagination a go. The difference between the ways is about when it get set, and executed, and what scope it reach. As also organization aspect (i can have my own text list (one path per line), and have it compiled and executed in the right manner and place for example). Better see the links above, i put a good selection out there, to get a better understanding about how things work, and what method to choose. But generally the two above for a system wide configuration, are mostly what you need.
Do remember to actually source the installation file.
wget -0- wget https://toolbelt.heroku.com/install-ubuntu.sh | sh
didn't work for me. And as a linux noob I used instead:
wget 0- wget https://toolbelt.heroku.com/install-ubuntu.sh | sh
notice that the '-' is missing from the option to wget. This downloaded the install source to my current directory.
then I did:
bash install-ubuntu.sh
which finished up the installation for me.
then:
heroku login
works!!
Just run
$ gem install heroku
Form your app that's it.
I am using zsh which didn't have snap in its path. So just add this in ~/.zshrc.
export PATH=$PATH:/snap/bin
try npm install -g heroku for any platform.
Ran gem install heroku first and it gave me the following message:
heroku must be installed from cli.heroku.com. This gem is no longer available. (RuntimeError)
Steps from Heroku:
brew tap heroku/brew && brew install heroku
or Ubuntu
sudo snap install --classic heroku
when you install heroku in linux as per the documentation using
sudo snap install heroku --classic
it will install heroku inside /snap/bin/heroku
but when you type the command in terminal it will look into /usr/bin/ directory,
a simple solution is to create a symlink by
sudo ln -s /snap/bin/heroku /usr/bin/heroku
after that you can just run the heroku command in terminal.
First install heroku:
wget -qO- https://toolbelt.heroku.com/install.sh | bash
After that add a symlink to binary like #Garrett did:
sudo ln -s /usr/local/heroku/bin/heroku /usr/bin/heroku
Export snap Directory
export PATH=$PATH:/snap/bin
For yarn
If you want to deploy your backend or server, go to backend or server folder, use -
yarn global add heroku
For deploying frontend or client, go to frontend or client folder and use the same cmd.
For npm
Go to the respective folder which you want to deploy and use npm i -g heroku
After installing Heroku Toolbelt using the .pkg file I downloaded from Heroku's Getting Started with Rails 4.x on Heroku page, I got the heroku command not found message. My /usr/local/heroku/bin folder did exist.
I was able to resolve this issue by going to https://toolbelt.heroku.com and downloading the same .pkg file from that site and re-installing it. Note, I did not uninstall the previous package first.
After you run wget -0- wget https://toolbelt.heroku.com/install-ubuntu.sh | sh you might get the following warning:
WARNING: The following packages cannot be authenticated!
heroku heroku-toolbelt
If this happens, run this apt-get install -y --force-yes heroku-toolbelt
I've run all the commands with sudo, but I don't know if it makes a difference. Thanks to this answer
Brew install did not work in macOS?
For me brew tap heroku/brew && brew install heroku did not work in macOS.
So I tried the standalone download.
Here is the command which worked for me
curl https://cli-assets.heroku.com/install.sh | sh

Resources