Ubuntu Hardy setup - page 2
In page 1 of the Ubuntu Hardy setup, we completed the ssh configuration along with a basic iptables install.
Let's move on and install some personal configuration files to make our life easier. Once done, we can update the install and create a solid base for the 'meat' of the server.
OS check and Free
First thing is to confirm what OS we're using. We know we should be using Ubuntu Hardy but let's see:
cat /etc/lsb-release
You should get an output similar to this:
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=8.04
DISTRIB_CODENAME=hardy
DISTRIB_DESCRIPTION="Ubuntu 8.04"
Good. Memory usage should be very low at this point but let's check using 'free -m' (the -m suffix displays the result in MB's which I find easier to read):
free -m
It's nice to know what is going on so let's look at that output:
. total used free shared buffers cached
Mem: 254 43 211 0 3 74
-/+ buffers/cache: 26 228
Swap: 511 0 511
The line to take notice of is the second one as the first line includes cached memory - in this demo slice I have 254MB of useable memory with 26MB actually used, 228MB free and no swap used. Nice.
.bashrc
Let's make the terminal a bit more attractive and a bit more informative by adding a few lines to our . bashrc file.
nano ~/.bashrc
Add the next few lines at the end of the existing text. The following line will make the terminal show the server name in colour and display the working directory (the directory we are in) in a different colour:
export PS1='\[\033[0;35m\]\h\[\033[0;33m\] \w\[\033[00m\]: '
If you look at the existing content of the .bashrc file, you may notice some 'PS1' content already - you can change the existing content if you prefer. This method simply changes the default output.
Now we can add aliases to the file. Aliases are short cuts to commands or sequences of commands. I've included a few below but you can have as many or as few as you want.
alias free="free -m"
alias update="sudo aptitude update"
alias install="sudo aptitude install"
alias upgrade="sudo aptitude safe-upgrade"
alias remove="sudo aptitude remove"
The examples above are pretty simple. Instead of typing 'free -m' every time I want to look at the memory usage, I just type 'free. Typing 'sudo aptitude install' can get tedious, so I just type 'install'.
I still need to provide my password for the sudo command to work, but it is more productive/quicker/easier to have short cuts.
To activate the changes issue this command:
source ~/.bashrc
You should now see the slice name in purple and the working directory in brown.
To change the colours to your choosing, adjust the 0;35m and the 0;33m values in the 'export PS1' line of your .bashrc. For example:
export PS1='\[\033[0;32m\]\h\[\033[0;36m\] \w\[\033[00m\]: '
would give you a green and blue output.
sources.list
The Ubuntu Hardy Slice comes with a basic set of repositories but let's have a check to see what sources we are using:
sudo nano /etc/apt/sources.list
You should see the default list as follows:
deb http://archive.ubuntu.com/ubuntu/ hardy main restricted universe
deb-src http://archive.ubuntu.com/ubuntu/ hardy main restricted universe
deb http://archive.ubuntu.com/ubuntu/ hardy-updates main restricted universe
deb-src http://archive.ubuntu.com/ubuntu/ hardy-updates main restricted universe
deb http://security.ubuntu.com/ubuntu hardy-security main restricted universe
deb-src http://security.ubuntu.com/ubuntu hardy-security main restricted universe
You can, of course, add more repositories whenever you want to but I would just give a word of caution: Some of the available repositories are not officially supported and may not receive any security updates should a flaw be discovered.
Keep in mind it is a server we are building and security and stability are paramount.
Update
Now we can update the sources so we have the latest list of software packages:
sudo aptitude update
NOTE: If you have used the .bashrc shown above you just need to enter 'update' as the alias will use the entire command. I've put the whole thing here so you know what is happening.
locales
Remember the Hardy Slice is a bare bones install so we need set the system locale:
sudo locale-gen en_GB.UTF-8
...
sudo /usr/sbin/update-locale LANG=en_GB.UTF-8
Upgrade
Now we have updated the sources.list repositories and set the locale, let's see if there are any upgrade options:
sudo aptitude safe-upgrade
Followed by a:
sudo aptitude full-upgrade
Once any updates have been installed, we can move on to installing some essential packages.
build essentials
Ubuntu Hardy has some handy meta-packages that include a set of pre-defined programmes needed for a single purpose.
So instead of installing a dozen different package names, you can install just one meta-package. One such package is called 'build-essential'. Issue the command:
sudo aptitude install build-essential
Notice the programmes that are to be installed include gcc, make, patch and so on. All these are needed for many other programmes to install properly. A neat system indeed.
Enter 'Y' and install them.
done
Quite a lot happening here but now we have a secured and updated Slice.
The console is now informative and less drab, locales have been configured and the meta-package build-essential has been installed.
If you do this more than once or twice it doesn't take long at all and we now have the ideal base to install the 'meat' of our server.
PickledOnion.


Article Comments:
Birger J. Nordølum commented Fri Apr 25 17:21:09 UTC 2008:
bash-completion is not installed on default. So you need to add this to use sudo in a proper mather.
Birger :)
Cody commented Sun Apr 27 03:14:45 UTC 2008:
For those in the USA, use this as the system locale:
sudo locale-gen en_US.UTF-8 sudo /usr/sbin/update-locale LANG=en_US.UTF-8
Eric commented Sun May 11 19:30:55 UTC 2008:
Can you please explain why you are running both safe and full upgrade, doesn't full imply all of safe as well? How often should these commands be run, and should it be scheduled to run automatically?
PickledOnion commented Wed May 14 09:09:24 UTC 2008:
Eric,
safe and full upgrades are different commands and can upgrade different things (see the Ubuntu documentation for details).
You wouldn't need to run a full upgrade very often.
I wouldn't recommend ever running an automatic update and upgrade as they will always need supervising.
PickledOnion
Mark commented Wed May 14 10:41:26 UTC 2008:
Thanks PickledOnion - I think your tutorials are really well written
Sohail commented Mon May 19 18:09:18 UTC 2008:
PickedOnion - I've got to echo Mark. These tutorials are fantastic! They are accurate, exactly what a person needs and take the "fear" out of set up from scratch. Many of us are devs that don't muck with OS config unless we have to, so we're always rusty until the next install. Your walk throughs make setup a breeze!
This is truly a value add above and beyond that distinguishes Slicehost.com.
Great work!
Jeremy Ricketts commented Tue May 27 05:06:29 UTC 2008:
Wow. I just wanted to chime in here and say VERY well done. These tutorials are so thorough and so helpful.
Doug Johnston commented Mon Jun 02 19:47:31 UTC 2008:
To echo everyone else, these tutorials are awesome!! I've set up 3 different VPSs over the past few years and it has ALWAYS been a headache. These instructions are clear and very easy to follow. Thanks! I already have a good feeling about the move to slicehost.
Michael commented Fri Jun 06 13:07:45 UTC 2008:
Thanks for the great article, especially giving some detail about firewalling via iptables.
Keep up the great work!
Jared commented Sat Jun 07 00:33:49 UTC 2008:
@Cody Thanks! Locale in the article didn't work for this US user anyway :)
brendan lally commented Tue Jun 10 06:02:27 UTC 2008:
US needs following (; missing)
sudo locale-gen enUS.UTF-8 ; sudo /usr/sbin/update-locale LANG=enUS.UTF-8
Frank commented Fri Jun 13 17:20:04 UTC 2008:
not only are the tutorials amazing, but if you catch him in live chat, he's also a huge help
xolotl commented Mon Jun 16 06:48:11 UTC 2008:
correction missing an underscore, wouldn't that be: sudo locale-gen enUS.UTF-8 ; sudo /usr/sbin/update-locale LANG=en_US.UTF-8
MJS commented Mon Jun 16 10:43:54 UTC 2008:
This is for anyone having the same problem as me.
I couldn't get the en_GB locale file to install. It wasn't in my locale list.
So I had to run this first:
PickledOnion commented Mon Jun 16 10:46:34 UTC 2008:
Hi,
The locale-gen command is the first command you run.
It is in the article before you update the locale.
You must follow the article and enter all the commands or, as you discovered, it doesn't work.
PickledOnion
MJS commented Mon Jun 16 20:58:52 UTC 2008:
Hmm, I sure I ran all the commands. But now I see it and feel like a dolt.
H commented Wed Jun 18 01:25:05 UTC 2008:
I accidentally ran "sudo aptitude safe-upgrade" before I set the locale and so I got a lot of warnings like these:
perl: warning: Falling back to the standard locale ("C"). perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LANG = "en_US.UTF-8" are supported and installed on your system.
The safe-upgrade command finished ok. I then set the local. Then I reran the "sudo aptitude safe-upgrade" and it didn't update anything. Does it mean the locale of my upgraded packages is now all screwed up? Do I need to re-install the slice?
Thanks.
Gokul commented Wed Jun 18 13:15:42 UTC 2008:
I had to reboot for the update-locale command to take effect.
AMR commented Mon Jul 07 16:52:30 UTC 2008:
Thanks for writing these articles. They are very helpful.
Blake Lucchesi commented Mon Jul 14 23:27:31 UTC 2008:
For those running macs and using xterm, I had an issue with my backspace key getting recognized by pico/nano. Found an easy solution here: http://www.macosxhints.com/article.php?story=20040930002324870
Thanks for the great articles PO!
adam commented Mon Jul 21 17:36:16 UTC 2008:
@blake, the mac delete problem with nano is fixed by adding;
"set rebinddelete"
to /etc/nanorc
dont include the quotes though
Philip Hallstrom commented Wed Jul 30 07:03:11 UTC 2008:
I just created a new slice and was following the directions exactly, but when I tried to set the locale, I got an error as follows:
Joe Cascio commented Thu Jul 31 23:43:21 UTC 2008:
adam: Thanks for the Mac hack for nano. That was driving me batty! :)
Also, great doc! I got through it in an hour or two, even though I hadn't done any unix work in literally decades!
Max commented Thu Aug 07 01:07:57 UTC 2008:
Awesome quick start guide. No bullshit just like i like it.
Bruce Giovando commented Fri Aug 08 05:26:28 UTC 2008:
Philip: I'm getting the same problem, i've tried rebooting with no luck. Anyone have any ideas?
Steve commented Sat Aug 09 02:48:44 UTC 2008:
I fixed the locales problem:
nano ~/.bashrc
Add the following two lines: export LCALL=enGB.UTF-8 export LANG=en_GB.UTF-8
source ~/.bashrc
sudo dpkg-reconfigure locales sudo /usr/sbin/update-locale LANG=en_GB.UTF-8
Jon commented Fri Aug 15 16:48:53 UTC 2008:
Great tutorials.
@Blake: I managed to solve the problem with backspace in vim by opening up ~/.vimrc and setting 'set backspace=2'. To combine that with the a fix for problematic arrow keys, etc, my .vimrc file looks like this: set nocompatible set backspace=2
Scott commented Sat Aug 16 17:29:55 UTC 2008:
I entered this command "sudo locale-gen en_US.UTF-8". But it seems to be taking a while. Is this normal?
Dash commented Sun Aug 24 04:14:40 UTC 2008:
Thank you very much for this article - its a snap now to setup my slice!
James Foster commented Mon Sep 08 03:43:07 UTC 2008:
I have a screencast where I follow these instructions. You can view it at http://programminggems.wordpress.com/2008/09/07/slicehost/
George commented Mon Sep 15 09:24:51 UTC 2008:
How do you set locale for those in Africa?
zissan commented Tue Sep 30 12:23:23 UTC 2008:
thanks a lot! you guys done some amazing works!
Dmitry commented Sat Oct 11 15:38:28 UTC 2008:
To everyone having problems with the locale commands: after fighting with them for a couple hours and screwing up my slice, I have decided to rebuild it and made a backup right before trying to set the locale. You know what - both commands worked flawlessly!
iain commented Sat Nov 01 06:21:20 UTC 2008:
Great tutorials man. Very superior work here, really gives slicehost added value, what a deal :D
Eiso Kant commented Tue Nov 11 16:13:11 UTC 2008:
Thank you for writing these, I could have never done this on my own.
Pedro Marban commented Thu Nov 13 18:04:39 UTC 2008:
I'm new to SliceHost and I've followed successfully the two great Hardy setup tutorials.
Sorry if I'm wrong but I think it is a good idea to set time synchronization with NTP: https://help.ubuntu.com/8.04/serverguide/C/NTP.html
And for the international users to change the time zone: https://help.ubuntu.com/community/UbuntuTime#Changing%20the%20Time%20Zone
PickledOnion commented Fri Nov 14 11:12:48 UTC 2008:
Hi,
NTP is running on the host server. You shouldn't need to run it on the Slice as well.
PickledOnion
Daniel Hardman commented Wed Dec 31 03:31:52 UTC 2008:
I also had a problem with the locale stuff. I tried everything in these comments, plus a bunch of other stuff after searching the web. None of it worked. Finally I noticed that my default shell was sh instead of bash. When I edited my default shell and made it bash, some of the other instructions I found worked.
Steve Cox commented Fri Jan 02 15:48:34 UTC 2009:
I agree with the ones giving praise. Both part 1 and part 2 are awesome.
I was having trouble with the locale, and did a soft reboot. WOrked fine after that.
Steve
Nes commented Wed Jan 14 07:18:03 UTC 2009:
This process was awesome and informative! I learned so much while setting my slice up. Thank you Slicehost (PickledOnion)!!!
GS commented Fri Jan 23 05:10:51 UTC 2009:
great tutorials! very little linux experience and this is making it very easy to set up a server. Thanks for the great work.
dave commented Mon Jan 26 11:06:16 UTC 2009:
Everything has worked flawlessly -- except I too am having problems with locale. Re-booted (like others), both Soft and Hard (one time), and locale still not working. Did both commands, in the order prescribed.
Also, noticed that I get 'Unable to set System Clock'(twice) when my slice is booting up. Once booted, I keep get London/UTC. Suggestions?
James Godwin commented Fri Feb 06 18:57:09 UTC 2009:
Simply beautiful. The tutorial reads like a poem
John commented Sun Feb 22 20:11:56 UTC 2009:
is this command correct: export PS1='[\033[0;32m]\h[\033[0;36m] \w[\033[00m]: '
I don't get the current directory in brown using this...
jared commented Sat Feb 28 04:06:35 UTC 2009:
Even though I set the locale correctly, which is required to update packages, the local time (displayed by doing 'date') was set to UTF, not my local time.
Had to do 'sudo dpkg-reconfigure tzdata' to get the right timezone.
Jesse commented Sat Mar 07 06:49:47 UTC 2009:
Thank you for this article this helped me get on track and up to speed, as well as the slicechat -- but after going over this three times I am really starting to see how things work! Thank you!
Florida Web Design commented Mon Mar 16 03:47:59 UTC 2009:
This page is much more intuitive than Page 1 of this setup. I had a terrible time doing visudo, as well as the Private/Public pair deal with Windows.
Clive commented Fri Apr 10 15:31:11 UTC 2009:
To echo George, what is the command for locale Africa?
Chip commented Sun Apr 19 09:34:57 UTC 2009:
To find the country code for your country, google for 'ISO 3166'. It's a document that lists the two letter codes for various countries.
Then do: "nano /usr/share/i18n/SUPPORTED" and see if that code is listed. If so, you should be good to go.
Alex commented Sat Apr 25 06:35:48 UTC 2009:
What command have to be for locale Russian/Ukraine?
Jordan Lev commented Sat May 02 00:29:37 UTC 2009:
@Alex, I believe the Russian locale would be "ruRU.UTF-8", and the Ukrainian locale would be "ukUA.UTF-8" (but I'm not 100% sure).
George Tuvell commented Thu May 07 04:04:10 UTC 2009:
If you are getting a "connection refused" error when you try to login via SSH after doing the SSH reload command, make sure that you have the port open in the iptables that matches the port you setup in the SSHDConfig. (i.e. it's defaulted to port 3000 in the iptables, but u need to change this number in the IPtables to the port you chose in the SSHDConfig.) They must match!
This one took me some time to solve..hope it helps.
Dave commented Fri May 22 08:32:50 UTC 2009:
Sweet Tutorial! - Thanks a million!