OpenVZ is total crud. I thought about giving this thread the title, "No kernel no problem - no Brain no pain", but that really wouldn't help someone who purchased a crummy OpenVZ VPS from some cut-rate provider now would it?
There are plenty of freeshell providers out there who will give you a chroot'd environment or a BSD jail to work from - so why pay for some fake vps that claims to be its own machine when it's really just a container above a jail shell?
Well, I don't get it, but people buy them. I have to sleep at night and since I prefer to do so without having to take lots of valium I don't offer OpenVZ - Only Xen, KVM, and VMware VPS/Cloud services.
Oh, some people still want a dedicated physical server. I sell co-location too - not because I think it's hardly ever a good idea, but because it is a good, although expensive solution.
I understand the vanity of being able to say "Hey I own my own server in a rack somewhere", but not really the reason for it, unless they're going to use that server to host virtualization technologies LOL!
But I digress. This is a quick, down and dirty, cookbook tutorial for getting Slackware up and running on one of those cruddy OpenVZ VPS systems.
I'm writing this because we get a lot of folks asking why they're having so many problems with their Slackware, Gentoo, and firewalls for all kinds of distributions.
The reason in a nutshell is: No kernel no problem! um... no brain no pain! er... You're sharing your kernel and some other stuff with every other person on that box!!!!
Okay, here's what happens. your provider creates or downloads a "Minimal" template from somewhere. That's okay with the netinstall for CentOS and debian, but Slackware likes to have pretty much a full install.
Sure, you don't have to, but you'll end up installing all kinds of libs, one by one, until you hammer out the significance as to why you should, even though you're not going to use certain parts of it. But you will.
That's why Slackware is one of those, "It just works" distros. Because you have a huge amount of libraries to support most of what you are going to install, and unlike distros like CentOS, you're not hemmed into being two years behind the software curve, and then locked in.
Okay. Real quick. "Why doesn't my firewall work?" Answer: Don't install any mods as part of your firewall - just keep it simple, stupid, lame, and ineffectual. Sure, you're vulnerable, but that's okay because your machine doesn't have a brain, I mean, it's own kernel, anyway
You're limited to whatever the provider has compiled their kernel to support and that is it buddy!
Most of them won't tell you how they've set things up, but there are ways which you can glean this info (beyond the scope of this tutorial).
You clicked on that SolusVM button in your VPS Control Panel that says, install OS...
You've given it a few minutes now and your dashboard is green. That's good! You now have a shiny new OS that people are already scanning and preparing to cr4ck.
You might want to think about that firewall now... And read my article on securing SSH too.
Since your providers template was a Slackware-minimal, it is quite likely that you don't even have the tools installed to install the tools you need! And you need Slackpkg
to install the rest of your operating system before you start getting down to what you wanted to do with your box, like... maybe run an email and webserver?
The first thing you're probably going to need to get on your system is Curl. You're going to have to SCP that over. You can locate everything you need from HERE for Slackware
and HERE for Slackware64
. I'll focus on the 32bit version of Slackware for the purposes of this tutorial. After all, we're talking OpenVZ aren't we?
Just look in the file named, FILE_LIST
and it will tell you exactly where you need to download your packages from.
drwxr-xr-x 17 root root 4096 2012-02-11 02:45 .
-rw-r--r-- 1 root root 210923 2012-02-11 02:45 ./CHECKSUMS.md5
-rw-r--r-- 1 root root 198 2012-02-11 02:45 ./CHECKSUMS.md5.asc
-rw-r--r-- 1 root root 265256 2012-02-11 02:43 ./FILE_LIST
-rw-r--r-- 1 root root 2463676 2012-02-11 02:45 ./MANIFEST.bz2
lrwxrwxrwx 1 root root 15 2003-10-02 23:39 ./PACKAGES.TXT -> ../PACKAGES.TXT
-rw-r--r-- 1 root root 242 2002-06-13 03:46 ./README.TXT
drwxr-xr-x 2 root root 20480 2012-02-08 01:29 ./a
-rw-r--r-- 1 root root 327 2011-03-25 18:37 ./a/aaa_base-13.37-i486-3.txt
-rw-r--r-- 1 root root 10468 2011-03-25 18:37 ./a/aaa_base-13.37-i486-3.txz
-rw-r--r-- 1 root root 198 2011-03-25 18:37 ./a/aaa_base-13.37-i486-3.txz.asc
-rw-r--r-- 1 root root 568 2011-04-22 17:25 ./a/aaa_elflibs-13.37-i486-7.txt
-rw-r--r-- 1 root root 4538208 2011-04-22 17:25 ./a/aaa_elflibs-13.37-i486-7.txz
-rw-r--r-- 1 root root 198 2011-04-22 17:25 ./a/aaa_elflibs-13.37-i486-7.txz.asc
-rw-r--r-- 1 root root 505 2011-03-07 20:53 ./a/aaa_terminfo-5.8-i486-1.txt
-rw-r--r-- 1 root root 43852 2011-03-07 20:53 ./a/aaa_terminfo-5.8-i486-1.txz
-rw-r--r-- 1 root root 198 2011-03-07 20:53 ./a/aaa_terminfo-5.8-i486-1.txz.asc
-rw-r--r-- 1 root root 416 2011-04-18 19:00 ./a/acl-2.2.50-i486-1.txt
-rw-r--r-- 1 root root 133988 2011-04-18 19:00 ./a/acl-2.2.50-i486-1.txz
-rw-r--r-- 1 root root 198 2011-04-18 19:00 ./a/acl-2.2.50-i486-1.txz.asc
-rw-r--r-- 1 root root 471 2011-04-16 04:15 ./a/acpid-2.0.9-i486-1.txt
-rw-r--r-- 1 root root 38012 2011-04-16 04:15 ./a/acpid-2.0.9-i486-1.txz
-rw-r--r-- 1 root root 198 2011-04-16 04:15 ./a/acpid-2.0.9-i486-1.txz.asc
-rw-r--r-- 1 root root 554 2011-04-11 06:24 ./a/apmd-3.2.2-i486-3.txt
-rw-r--r-- 1 root root 53788 2011-04-11 06:24 ./a/apmd-3.2.2-i486-3.txz
-rw-r--r-- 1 root root 198 2011-04-11 06:24 ./a/apmd-3.2.2-i486-3.txz.asc
-rw-r--r-- 1 root root 608 2011-04-18 19:00 ./a/attr-2.4.45-i486-1.txt
-rw-r--r-- 1 root root 71372 2011-04-18 19:00 ./a/attr-2.4.45-i486-1.txz
-rw-r--r-- 1 root root 198 2011-04-18 19:00 ./a/attr-2.4.45-i486-1.txz.asc
-rw-r--r-- 1 root root 510 2011-03-11 04:45 ./a/bash-4.1.010-i486-1.txt
-rw-r--r-- 1 root root 904856 2011-03-11 04:45 ./a/bash-4.1.010-i486-1.txz
-rw-r--r-- 1 root root 198 2011-03-11 04:45 ./a/bash-4.1.010-i486-1.txz.asc
-rw-r--r-- 1 root root 227 2007-02-02 06:29 ./a/bin-11.1-i486-1.txt
-rw-r--r-- 1 root root 41608 2007-02-02 06:29 ./a/bin-11.1-i486-1.txz
-rw-r--r-- 1 root root 197 2007-02-02 06:29 ./a/bin-11.1-i486-1.txz.asc
As you can see, Bash in in the "a" directory, directly below where you are.
Okay let's get Curl okay?
-rw-r--r-- 1 root root 555 2011-03-29 20:36 ./n/curl-7.21.4-i486-1.txt
-rw-r--r-- 1 root root 742784 2011-03-29 20:36 ./n/curl-7.21.4-i486-1.txz
-rw-r--r-- 1 root root 198 2011-03-29 20:36 ./n/curl-7.21.4-i486-1.txz.asc
Kewl! Curl is located at:
Here's the problem. You don't have wget. you don't have lynx, elinks, you don't even have the crypt libs that you need to use wget and run Slackpkg to get the rest of your OS.
So you're going to have to get creative. Download it to another box (along with a few other things in the list below) and then scp it on over. Then you can use curl to get the rest until you have enough to run wget and Slackpkg.
# scp you@some_other_remote_box.sld.tld:/home/you/stuff/curl-7.21.4-i486-1.txz .
You get the idea. Let's move on...
| slackpkg installation |
On some installs, perhaps like one might find when using OpenVZ templates, it maybe necessary to install slackpkg and a few dependencies.
Here's one way to do that.
1.) download and install the following with installpkg:
# installpkg curl-7.21.4-i486-1.txz
2.) set DIALOG=off in /etc/slackpkg/slackpkg.conf and pick one mirror in /etc/slackpkg/mirrors. Uncomment all of the kernel packages in /etc/slackpkg/blacklist so newer versions ARE NOT installed.
3.) Run the following:
# slackpkg update,
# slackpkg update-gpg
# slackpkg install-new
# slackpkg updrade-all
# slackpkg clean-system
If you want a complete installation, installing all uninstalled packages, use:
# slackpkg install slackware
| sbokg installation |
wget the sbopkg package from sbopkg.org. typically,
# mkdir -p /usr/local/slackbuilds
# mkdir -p /usr/local/packages; cd /usr/local/packages
# wget -N --no-cache http://sbopkg.googlecode.com/files/s...arch-1_cng.tgz
# upgradepkg --install-new --verbose sbopkg*
Now we need to configure and prepare sbopkg for usage.
edit /etc/sbopkg/sbopkg.conf and change the following:
Now run sbopkg from the command line,
accept the creation of the new dirs by entering 'c'.
Once that has finished, allow a sync with the SBo repo.
You can quickly install software with a single flick of the wrist by typing:
And bmon will automagically be installed!
use '-s' if you want to search for something by name, without installing it, and '-g' to search with a little bit of fuzzy logic. Running sbopkg by itself opens an interactive graphical session and you can search and queue up several packages, but that is another tutorial, and probably more appropriate for another forum other than a VPS tutorial that explains how to finish installing your operating system once you buy your OpenVZ VPS (Like this tutorial does!).
Anyway, now you have a fully installed, complete, and current Slackware Linux Operating system