Rackspace Cloud LinuxOne of the very cool aspects of the Rackspace Cloud is the number of Linux/GNU variants. As I'm already very intimately familiar with Red Hat / CentOS, I decided to take a look at the other seven.Dealing with an array of cloud servers can be a little tedious, so I wrote a little program to run commands on all of them for me: github_gist:/PaulReiber/run This article documents my exploration of Ubuntu, Arch, FreeBSD, Debian, Gentoo, Fedora, and openSUSE. | Ubuntu CentOS Red Hat | Arch Debian Fedora | FreeBSD Gentoo openSUSE |
$ run 'hostname'|egrep ^pbr\|stdout pbr_ubuntu12.10_512 @stdout="pbr-ubuntu12.10-512\r\n">] pbr_freebsd9_512 @stdout="pbr-freebsd9-512\r\n">] pbr_opensuse12.1_512 @stdout="pbr-opensuse12.1-512\r\n">] pbr_fedora17_512 @stdout="pbr-fedora17-512\r\n">] pbr_gentoo12.3_512 @stdout="pbr-gentoo12.3-512\r\n">] pbr_debian6_512 @stdout="pbr-debian6-512\r\n">] pbr_arch2012.08_512 @stdout="bash: hostname: command not found\r\n">]
Grepping JSON output isn't pretty, but you can see from the above how my program "run" works - it prints out the name of each cloud server then the JSON output of running a command via the ruby fog "ssh" API.
The output above also highlights something I ran into a LOT - various "standard" commands are simply not present on some distros! Let's take a look - is "vim" available on all of the distros?
$ run 'which vim'|egrep ^pbr\|stdout pbr_ubuntu12.10_512 @stdout="/usr/bin/vim\r\n">] pbr_freebsd9_512 @stdout="vim: Command not found.\r\n">] pbr_opensuse12.1_512 @stdout="/usr/bin/vim\r\n">] pbr_fedora17_512 @stdout="/bin/vim\r\n">] pbr_gentoo12.3_512 @stdout="which: no vim in (/usr/bin:/bin:/usr/sbin:/sbin)\r\n">] pbr_debian6_512 @stdout="">] pbr_arch2012.08_512 @stdout="/usr/bin/vim\r\n">]
From this it seems that FreeBSD, Gentoo, and Debian don't come with vim pre-installed. How about 'make'?
$ run 'which make'|egrep ^pbr\|stdout pbr_ubuntu12.10_512 @stdout="/usr/bin/make\r\n">] pbr_freebsd9_512 @stdout="/usr/bin/make\r\n">] pbr_opensuse12.1_512 @stdout="/usr/bin/make\r\n">] pbr_fedora17_512 @stdout="/bin/make\r\n">] pbr_gentoo12.3_512 @stdout="/usr/bin/make\r\n">] pbr_debian6_512 @stdout="/usr/bin/make\r\n">] pbr_arch2012.08_512 @stdout="which: no make in (/usr/bin:/bin:/usr/sbin:/sbin)\r\n">]No make command is available on arch. Arch is not for the faint of heart, I guess.
I'll be updating this blog post, and adding additional posts as I continue exploration of these various Linux distros.