Installing chef client on a Solaris server
To install chef client in a Solaris server we need to
install ruby & rubygems packages which in turn have gcc as a dependency.
To install ruby & rubygems from source download the
tarball & extract it.
root@solaristest:/tmp# tar xvf ruby-1.8.7-p302.tar
x ruby-1.8.7-p302, 0 bytes, 0 tape blocks
x ruby-1.8.7-p302/lib, 0 bytes, 0 tape blocks
x ruby-1.8.7-p302/lib/drb.rb, 19 bytes, 1 tape blocks
---------------------------------- -------------- --------------------
----- output truncated
cd ruby-1.8.7-p302
Now run ./configure:
root@solaristest:/tmp/ruby-1.8.7-p302# ./configure
checking build system type... sparc-sun-solaris2.10
checking host system type... sparc-sun-solaris2.10
checking target system type... sparc-sun-solaris2.10
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
---------------------------------- -------------- --------------------
----- output truncated
Now run make:
root@solaristest:/tmp/ruby-1.8.7-p302# make
make: Warning: Illegal dependency list for target
`.DEFAULT'
gcc -g -O2
-DRUBY_EXPORT -I. -I. -c array.c
gcc -g -O2
-DRUBY_EXPORT -I. -I. -c
bignum.c
gcc -g -O2
-DRUBY_EXPORT -I. -I. -c
class.c
gcc -g -O2
-DRUBY_EXPORT -I. -I. -c
compar.c
gcc -g -O2
-DRUBY_EXPORT -I. -I. -c dir.c
gcc -g -O2
-DRUBY_EXPORT -I. -I. -c dln.c
gcc -g -O2
-DRUBY_EXPORT -I. -I. -c enum.c
gcc -g -O2
-DRUBY_EXPORT -I. -I. -c
enumerator.c
gcc -g -O2
-DRUBY_EXPORT -I. -I. -c
error.c
gcc -g -O2
-DRUBY_EXPORT -I. -I. -c eval.c
eval.c: In function `rb_eval_string_wrap':
eval.c:1744: warning: assignment discards qualifiers from
pointer target type
---------------------------------- -------------- --------------------
----- output truncated
Now run make install:
root@solaristest:/tmp/ruby-1.8.7-p302# make install
make: Warning: Illegal dependency list for target
`.DEFAULT'
./miniruby -I./lib -I.ext/common -I./-
-r./ext/purelib.rb ./instruby.rb --make="make"
--dest-dir=""
--extout=".ext"
--mflags=""
--make-flags=""
--data-mode=0644
--prog-mode=0755 --installed-list
.installed.list --mantype="man"
installing binary commands
installing command scripts
installing library scripts
installing headers
installing manpages
installing extension objects
installing extension scripts
With this ruby is installed successfully. To check the
version type:
root@solaristest:/tmp/ruby-1.8.7-p302# ruby --version
ruby 1.8.7 (2010-08-16 patchlevel 302)
[sparc-solaris2.10]
To install rubygems package first extract the tarball as follows:
tar xvf rubygems-1.3.7.tar
Now go to the directory in which the files got extracted
& run ruby setup.rb:
cd rubygems-1.3.7
ruby setup.rb
RubyGems 1.3.7 installed
=== 1.3.7 / 2010-05-13
NOTE:
http://rubygems.org is now the default source for
downloading gems.
---------------------------------- -------------- --------------------
----- output truncated
To check the installed version:
root@solaristest:/tmp/rubygems-1.3.7# gem --version
1.3.7
To install chef client download the client package from
the chef official website.
Now run the following command to install the package:
root@solaristest:/tmp# pkgadd -d chef-12.10.24-1.sparc.solaris chef
Processing package instance <chef> from
</tmp/chef-12.10.24-1.sparc.solaris>
chef(sparc) 12.10.24-1
Chef Software, Inc. <maintainers@chef.io>
Using </opt> as the package base directory.
## Processing package information.
## Processing system information.
## Verifying disk space requirements.
## Checking for conflicts with packages already
installed.
## Checking for setuid/setgid programs.
This package contains scripts which will be executed with
super-user
permission during the process of installing this package.
Do you want to continue with the installation of
<chef> [y,n,?] y
Installing chef as <chef>
---------------------------------- -------------- --------------------
----- output truncated
To see the version of chef installed type:
root@solaristest:/tmp# pkginfo -l chef
PKGINST: chef
NAME: chef
CATEGORY: application
ARCH: sparc
VERSION: 12.10.24-1
BASEDIR: /opt
VENDOR: Chef Software, Inc.
<maintainers@chef.io>
DESC: The full stack of chef
PSTAMP:
chef-solaris-10-sun4v-builder-a6fb8f.chef.co2016-04-27T18:37:34Z
INSTDATE: May 25 2016 09:41
EMAIL: Chef Software, Inc.
<maintainers@chef.io>
STATUS: completely installed
FILES: 13848 installed pathnames
2005 directories
417 executables
249756 blocks used (approx)
While working on this I encountered the following errors:
ERROR 1:
bash-3.2# ./configure
checking build system type... sparc-sun-solaris2.10
checking host system type... sparc-sun-solaris2.10
checking target system type... sparc-sun-solaris2.10
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: in `/tmp/ruby-1.8.7-p302':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.
ERROR 2:
bash-3.2# make
bash: make: command not found
ERROR 3:
bash-3.2# ruby setup.rb
/usr/local/lib/ruby/1.8/sparc-solaris2.10/thread.so:
ld.so.1: ruby: fatal: libgcc_s.so.1: open failed: No such file or directory -
/usr/local/lib/ruby/1.8/sparc-solaris2.10/thread.so (LoadError)
from
/usr/local/lib/ruby/1.8/thread.rb:5
from
./lib/rubygems.rb:11:in `require'
from
./lib/rubygems.rb:11
from
setup.rb:24:in `require'
from
setup.rb:24
The fix for the above errors is rather simple.
Just define the following variables in /etc/profile file:
export
PATH=$PATH:/usr/local/bin:/usr/ccs/bin:/usr/sfw/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
These contain paths for required entities like gcc &
make which cause the above mentioned errors.
Installing chef client on a Solaris server
To install chef client in a Solaris server we need to install ruby & rubygems packages which in turn have gcc as a dependency.