Archive for the ‘Debian’ Category
I am going to cover the basics of Name Based Virtual Hosting using Apache2 running on a Debian GNU/Linux Server.
The advantage of Name Based Virtual hosting is that you can host multiple websites from an Apache2 Web server and all these websites only require one static I.P Address and also the requirement that your domain name should resolve to the I.P Address of your server.
Step 1:First let us create the document root directories for the virtual domains example.com,example.org and example.net
root@zion:~# mkdir /home/www
root@zion:~# mkdir /home/www/www.example.com
root@zion:~# mkdir /home/www/www.example.com/htdocs
root@zion:~# mkdir /home/www/www.example.com/cgi-bin
root@zion:~# mkdir /home/www/www.example.com/logs
root@zion:~# mkdir /home/www/www.example.net
root@zion:~# mkdir /home/www/www.example.net/htdocs
root@zion:~# mkdir /home/www/www.example.net/logs
root@zion:~# mkdir /home/www/www.example.net/cgi-bin
root@zion:~# mkdir /home/www/www.example.org
root@zion:~# mkdir /home/www/www.example.org/htdocs
root@zion:~# mkdir /home/www/www.example.org/logs
root@zion:~# mkdir /home/www/www.example.org/cgi-bin
Please note that I have created separate directories for
Step 2: To enable virtual hosts in your Apache 2 Configuration.
For this let us create a file called /etc/apache2/conf.d/virtual.conf and the following content in it.
# We’re running multiple virtual hosts.
3) Create host files in /etc/init.d/sites-available in the following format for example.com
# Indexes + Directory Root.
# CGI Directory
ScriptAlias /cgi-bin/ /home/www/www.example.com/cgi-bin/
CustomLog /home/www/www.example.com/logs/access.log combined
Create similar virtual host files for example.net and example.org
4) Now enable the sites by running the command a2ensite
This will create a symbolic link between the files for the domains from /etc/init.d/sites-available to /etc/init.d/sites-enabled.
5) Restart apache2 with the command /etc/init.d/apache2 restart.
I was looking for a URL that would help me to list out the the default installation layouts for Apache httpd on various operating systems and distributions.
I found this URL: http://wiki.apache.org/httpd/DistrosDefaultLayout
Thanks to jMCg on #httpd on FreeNode for pointing me to this URL.
These are the steps to run an irssi client in a detached screen session.
a) Log into your shell account
b) Run screen
c) Run irssi
d) To detach the session use Cntrl + A and then D
[detached from 3526.pts-5.wisdom]
e) Once the session is detached, you may log out of your shell.
f) Now log back into your shell account.
g) Type the ‘screen -ls’ . This will show you screen sessions currently in use.
obadiah@wisdom:~$ screen -ls
There is a screen on:
3526.pts-5.wisdom (11/10/2010 08:40:46 AM) (Detached)
1 Socket in /var/run/screen/S-obadiah.
h) To reattach type the ‘screen -x’ command.
Morning Session 8/8/2010.
I woke up a bit early and reached the venue at around 7.50 PM as Praveen had scheduled another session of Debian Packaging at around 8.00 PM to around 10.00 PM and I wanted to really learn the Packaging Part as I want to start contributing to Debian straight way.
Debian GNU/Linux Packaging session
The morning session started with a session by Praveen on how to Install the lekhonee-gnome package by the Autotools method.
a) Download the latest stable source of lekhonee
obadiah@wisdom:~/Downloads$ ll lekhonee-gnome-0.11.tar.bz2
-rw-r–r–. 1 obadiah obadiah 195930 Aug 11 02:45 lekhonee-gnome-0.11.tar.bz2
b) Use tar -xvjf lekhonee-gnome-0.11.tar.bz2 command to untar the .tar.bz2 file.
obadiah@wisdom:~/Downloads$ tar -jxvf lekhonee-gnome-0.11.tar.bz2
c) List the contents of the lekhonee-gnome-0.11 directory.
obadiah@wisdom:~/Downloads$ ll lekhonee-gnome-0.11
-rw-r–r–. 1 obadiah obadiah 66691 Jun 24 11:33 aclocal.m4
-rw-r–r–. 1 obadiah obadiah 38 Apr 6 00:28 AUTHORS
-rw-r–r–. 1 obadiah obadiah 32918 Jun 3 14:30 ChangeLog
-rw-r–r–. 1 obadiah obadiah 2005 Jun 24 11:33 config.h.in
-rwxr-xr-x. 1 obadiah obadiah 234980 Jun 24 11:33 configure
-rw-r–r–. 1 obadiah obadiah 2230 Jun 24 11:33 configure.ac
-rw-r–r–. 1 obadiah obadiah 35147 Apr 5 11:53 COPYING
drwxr-xr-x. 3 obadiah obadiah 4096 Jun 24 14:10 data
-rwxr-xr-x. 1 obadiah obadiah 18615 Apr 8 01:10 depcomp
-rw-r–r–. 1 obadiah obadiah 15578 Apr 8 01:10 INSTALL
-rwxr-xr-x. 1 obadiah obadiah 13663 Apr 8 01:10 install-sh
-rw-r–r–. 1 obadiah obadiah 0 Apr 8 01:10 intltool-extract.in
-rw-r–r–. 1 obadiah obadiah 0 Apr 8 01:10 intltool-merge.in
-rw-r–r–. 1 obadiah obadiah 0 Apr 8 01:10 intltool-update.in
-rw-r–r–. 1 obadiah obadiah 215 Apr 5 14:43 Makefile.am
-rw-r–r–. 1 obadiah obadiah 22941 Jun 24 11:33 Makefile.in
-rwxr-xr-x. 1 obadiah obadiah 11419 Apr 8 01:10 missing
-rwxr-xr-x. 1 obadiah obadiah 3538 Apr 8 01:10 mkinstalldirs
-rw-r–r–. 1 obadiah obadiah 0 Apr 5 12:05 NEWS
drwxr-xr-x. 2 obadiah obadiah 4096 Jun 24 14:11 po
-rw-r–r–. 1 obadiah obadiah 284 Apr 6 11:59 README
drwxr-xr-x. 2 obadiah obadiah 4096 Jun 24 14:10 src
drwxr-xr-x. 2 obadiah obadiah 4096 Jun 24 14:11 ui
drwxr-xr-x. 2 obadiah obadiah 4096 Jun 24 14:11 vapi
d) Open the README file to check for the libraries required to install lekhonee-gnome.
obadiah@wisdom:~/Downloads/lekhonee-gnome-0.11$ cat README
This is the Gnome frontend for Lekhonee.
The icon for link (link.png) is taken from http://en.wikipedia.org/wiki/File:Gnome-insert-link.svg and is licensed as described there.
e) Use the ./confgure, make, make install’ command to compile lekhonee-gnome from souce.
One of the hiccups I noticed when I compiled lekhonee-gnome from scratch was it did not contain the gee.h header. This was resolved by searching for the libgee debian package and installing it.
obadiah@wisdom:~$ apt-cache search gee
libgee-dev – GObject based collection library (development files)
libgee2-dbg – GObject based collection library – library symbols
libgee2 – GObject based collection library
f) Now use the apt-get install command to install the libgee libraries.
obadiah@wisdom:~$ sudo apt-get install libgee-dev libgee2-dbg libgee2
Now follow the autotools method ./configure, make, make install procedure and lekhonee-gnome-0.11 should be installed on your system withut any issues.
Packaging lekhonee-gnome-0.11 for Debian
Once the Autools method of Installation was compete, we move into how to package lekhonee-gnome-0.11 for Debian.
1) The first step involved editing the README file and adding libgee as one of the libraries required for installation of lekhonee- gnome-0.11 on Debian.
2) Now use dh_make is a tool to convert a regular source code package into one formatted according to the requirements of the Debian Policy
obadiah@wisdom:~/Downloads/lekhonee-gnome-0.11$ dh_make -f ../lekhonee-gnome-0.11.tar.bz2
[ Note the path of the original source provided as a argument to lekhonee-gnome-0.11.tar.bz2 ]
This will prompt you to choose the type of package.
Type of package: single binary, indep binary, multiple binary, library, kernel module, kernel patch or cdbs?
[s/i/m/l/k/n/b] s ————————————————————————————————-
Choose ‘s’ for single Binary
Once this is done you will be prompted to enter the Maintainer Name,
Email Address, Date, Package Name, Version, License, Type of package
Maintainer name : Vivek Cherian
Email-Address : firstname.lastname@example.org
Date : Sun, 08 Aug 2010 22:24:11 +0530
Package Name : lekhonee-gnome
Version : 0.11
License : GPL V2
Using dpatch : no
Type of Package : Single
Hit to confirm:
Done. Please edit the files in the debian/ subdirectory now. lekhonee-gnome
uses a configure script, so you probably don’t have to edit the Makefiles.
3) Once this is done check out the ‘debian’ directory created inside
the lekhonee-gnome-0.11 directory with the ls command.
aclocal.m4 configure.ac INSTALL Makefile.am po
AUTHORS COPYING install-sh Makefile.in README
ChangeLog data intltool-extract.in missing src
config.h.in debian intltool-merge.in mkinstalldirs ui
configure depcomp intltool-update.in NEWS vapi
4) Now change into the debian directory with the cd command
obadiah@wisdom:~/lekhonee-gnome-0.11$ cd debian/
changelog emacsen-startup.ex manpage.xml.ex README.source
compat init.d.ex menu.ex rules
control lekhonee-gnome.cron.d.ex postinst.ex source
copyright lekhonee-gnome.default.ex postrm.ex watch.ex
docs lekhonee-gnome.doc-base.EX preinst.ex
emacsen-install.ex manpage.1.ex prerm.ex
emacsen-remove.ex manpage.sgml.ex README.Debian
5) Remove the *.ex files which are basically example files.
obadiah@wisdom:~/lekhonee-gnome-0.11/debian$ rm *.ex
changelog control docs README.Debian rules
compat copyright lekhonee-gnome.doc-base.EX README.source source
6) Once this is done change one directory back up into the lekhonee-gnome-0.11
aclocal.m4 config.log data intltool-extract.in Makefile.in README
AUTHORS config.status debian intltool-merge.in missing src
ChangeLog configure depcomp intltool-update.in mkinstalldirs stamp-h1
config.h configure.ac INSTALL Makefile NEWS ui
config.h.in COPYING install-sh Makefile.am po vapi
7) Now issue the dpkg-buildpackage -uc -us -sa commmand as follows
obadiah@wisdom:~/lekhonee-gnome-0.11$ dpkg-buildpackage -uc -us -sa
8 ) Now move up one more directory using the cd.. command and list the contents
with the ls command as follows.
Desktop lekhonee-gnome-0.11 Music
Documents lekhonee-gnome_0.11-1.debian.tar.gz Pictures
Downloads lekhonee-gnome_0.11-1.dsc Public
hello-debhelper-2.5 lekhonee-gnome_0.11-1_i386.changes Templates
hello-debhelper_2.5-1.diff.gz lekhonee-gnome_0.11-1_i386.deb Videos
9) Now you can see the .deb package as lekhonee-gnome_0.11-1_i386.deb
10) Now issue the dpkg -i command to install the lekhonee-gnome package.
obadiah@wisdom:~$ sudo dpkg -i lekhonee-gnome_0.11-1_i386.deb
11) You can also use the lintian package to test if it has any bugs and policy violations.
Afternoon Session on 8/8/2010.
This was the most boring session where the CDAC team presented a spineless presentation of BOSS. The BOSS team did not even know where the Bug Tracker System of the BOSS project itself was located.
Praveen and Karthik was very diplomatic in putting questions across to the BOSS Team who were sweating to find answers to the questions posed by a Debian Developer and a Debian Maintainer.
On a question about the BOSS Team’s contribution to the upstream the answer was “BOSS was not designed for the upstream, but for the common people”. What a pathetic answer CDAC to a very genuine concern from the Debian community.
At this point Praveen intervened and once again pointed them to the Debian Derivatives Front Desk URL, the clueless BOSS team nodded thier head. God alone knows if they understood anything at all.
Evening session (8/8/2010).
Once the conference was spared of the BOSS team, there was a Debian Keysigning Party in the evening where Karthik Mistry, Praveen A, Kushal Das, Abhijeet and myself did a Key Signing Party which a few students also joined.
Once the Conference was over Myself, Kartik, Praveen, Ramkrishna Reddy, Abhijeet, Vipul and myself went for for supper, where we had a lively discussion on everything from politics to corruption to FOSS to what not….
I slept that night in Ramakrishna Reddy’s house and boarded a Volo Bus from the Pune Bus Stand for Mumbai, the bus departed from Pune at around 8.30 AM on 9/8/2010 and I reached Mumbai by around 12.15 PM.
About Debian Conferences in India
The Mini Debconf Pune is the latest in a series of conferences organised by the Indian Debian Community. The first Debian Conference was held at IIIT-Bangalore in 2005 (followd by conferences in Bangalore in 2006,2007,2009 along the sidelines of FOSS.IN) and Mini Debconf Pune is the latest in the series of conferences held by the Debian India Community.
I left the Mumbai CST station at around 11.45 PM on 6/8/2010. I was travelling in the general compartment and I had to put up with an odd assortment of people who were all over the place incuding people sleeping on the floor and even under the seats. I was lucky to get a seat from Mumbai CST itself which spared me most of the pain of travelling in a general class compartment in India.
I reached the Pune Railway Station at around 2.30 AM on 7/8/2010 and I took an Autorickshaw from the Pune station to Kalyani Nagar, where Ramkrishna Reddy (Red Hat Pune) was staying who graciously agreed to host me for the 2 days that I intented to stay in Pune. Thanks once again Ramki.
I woke up around 8.00 PM on 7/8/2010, got ready in a hurry, and boarded an Autorickshaw at around 9.00 AM and reached the venue(the College of Engineering Pune at Shivaji Nagar) at around 9.30 AM.
Morning Session 7/8/2010.
On reaching the event, I met my good old friend Praveen Arimbrathodiyil (who is now a Debian Maintainer), Kartik Mistry (Debian Developer) and Onkar Shinde (Ubuntu Developer). Praveen introduced me to Abhijit A M a Lectuter at the college of Engineering Pune and I later met Shirish Agarwal, Pavithran Sakamuri and Vikram Vincent.
There were around 150 Patrticipants mostly students of College of Engineering Pune and a few other students from other colleges.
The day started when the Chief guest: Dr. M Sasikumar, Director, Corporate R&D, CDAC India delivered a speech on Free/Open Source Software and also the BOSS Operating a system, a Debian Derivative which CDAC has been attempting to develop.
I quietly missed this session as it was not only boring (what more can be expected from CDAC), but also because the Hall where the Debian Mini Conf was held only had Wifi Access and I was busy setting up the Wifi on my laptop.
An lspci on my Debian Squeeze showed me the make of my wifi card.
Intel Corporation PRO/Wireless 4965 AG or AGN [Kedron] Network Connection
I had to enable the non free sections in the /etc/apt/sources.list and install the ‘firmware-iwlwifi’ package which got my wireless to work.
The URL: http://wiki.debian.org/iwlagn helped me configure wifi on my HP Pavilion dv3000 Laptop
Once the Wifi got working on my Laptop, I quietly moved back into the hall and by that time thank God Dr. M Sasikumar decided to spare the audience. the ordeal of having to hear and bear him….
The next session was titled ‘Why Debian? Introducing the Universal Operating System by Praveen Arimbrathodiyil & Onkar Shinde ‘
Praveen and Onkar did a wonderful session which was interactive and even an old Debian hand like me had something interesting to listen to all the time…, they spoke on What is Debian ?, How it is a Constitutional Do-ocracy ? (meaning that the one who contributes the most to Debian gets the greater say in Debian), the 12 Supported Architectures, around 30,000 supported packages, the Debian releases till date, the GNU/Linux distro timeline, The Debian Free Software Guidlines (The DFSG),The releases of Debian, the sections of Debian repositories i.e Main (Fully Free Software), Contrib (Free Software which depends on Non Free Software and Non-Free (Software which is not part of Debian), the various level of Debian Project Membership starting with the Debian Developers, Debian Maintainers just below them and finally the contributers, the various teams of Debian etc.
The talk was interesting and was interspersed with question and answer sessions with the audience also contributing actively.
This was followed by a basic talk by Karthik on the various processes one has to pass through to become a Debian Developer, this was followed by Vikram Vincent’s talk on Debian l10n (localisation).
Over the lunch break, I met Kushal Das of the Fedora Project after a span of around 3 years.
I also met 2 lady participants Sana and Tanushree, both of the College of Engineering Pune and guided them on how to start contributing to the FOSS Movement and It was encouraging to see women getting interested in computing and FOSS. I told them about the FOSS Community and how it works, the method of communicaion used by the FOSS community which includes Mailing Lists, IRC (Internet Relay Chat), Various FOSS Bug Tracking Software etc….
Afternoon Session on 8/8/2010.
Post lunch, I was eagerly awaiting the session by Karthik, Praveen and Onkar on Debian Packaging.
Since I had Wifi already enabled on my laptop, I decided to stay in the Conference Hall itself and attend Karthik’ s seesion on Debian packaging while Praveen and Onkar handled the same session in the Computer Science Lab some distance away from the Conference hall.
Karthik’s session was interesting and he used the .’apt-get source’ command to get the source of the ‘hello-debhelper’ package.
a) apt-get source hello-debhelper
root@wisdom:~# apt-get source hello-debhelper
b) List the files downloaded.
drwxr-xr-x. 11 root root 4096 Aug 14 23:15 hello-debhelper-2.5
-rw-r–r–. 1 root root 5439 Feb 14 23:34 hello-debhelper_2.5-1.diff.gz
-rw-r–r–. 1 root root 1331 Feb 14 23:34 hello-debhelper_2.5-1.dsc
-rw-r–r–. 1 root root 582535 Feb 14 23:34 hello-debhelper_2.5.orig.tar.gz
drwxr-xr-x. 2 root root 4096 Aug 11 20:14 logs
As you can notice the hello-debhelper_2.5.orig.tar.gz the upsteam source package used to build the ‘hello-debhelper’ package, the .diff.gz file which is the source modifed by the debian packager, the .dsc (Debian Source Control file).
c) Now proceeded to use the dpkg-source -x *.dsc command as follows,
root@wisdom:~# dpkg-source -x *.dsc
dpkg-source: info: extracting hello-debhelper in hello-debhelper-2.5
dpkg-source: info: unpacking hello-debhelper_2.5.orig.tar.gz
dpkg-source: info: applying hello-debhelper_2.5-1.diff.gz
dpkg-source: info: upstream files that have been modified:
d) Now change Directory into the hello-debhelper-2.5/ directory
root@wisdom:~# cd hello-debhelper-2.5/
-rw-r–r–. 1 root root 79584 Nov 8 2006 ABOUT-NLS
-rw-r–r–. 1 root root 36330 Feb 7 2010 aclocal.m4
-rw-r–r–. 1 root root 587 Nov 10 2006 AUTHORS
drwxr-xr-x. 2 root root 4096 Feb 7 2010 build-aux
-rw-r–r–. 1 root root 23167 Feb 7 2010 ChangeLog
-rw-r–r–. 1 root root 5604 Oct 18 2006 ChangeLog.O
-rw-r–r–. 1 root root 18714 Feb 7 2010 config.in
-rwxr-xr-x. 1 root root 376196 Feb 7 2010 configure
-rw-r–r–. 1 root root 1844 Feb 7 2010 configure.ac
drwxr-xr-x. 2 root root 4096 Feb 7 2010 contrib
-rw-r–r–. 1 root root 35066 Jun 30 2007 COPYING
drwxr-xr-x. 2 root root 4096 Aug 14 23:19 debian
drwxr-xr-x. 2 root root 4096 Aug 14 23:19 doc
drwxr-xr-x. 4 root root 4096 Feb 7 2010 gnulib
-rw-r–r–. 1 root root 15584 Jan 8 2010 INSTALL
-rw-r–r–. 1 root root 3964 Jan 2 2009 Makefile.am
-rw-r–r–. 1 root root 39577 Feb 7 2010 Makefile.in
drwxr-xr-x. 2 root root 4096 Feb 7 2010 man
-rw-r–r–. 1 root root 2839 Feb 1 2010 NEWS
drwxr-xr-x. 2 root root 4096 Feb 7 2010 po
-rw-r–r–. 1 root root 2524 Feb 1 2010 README
drwxr-xr-x. 2 root root 4096 Feb 7 2010 src
drwxr-xr-x. 2 root root 4096 Feb 7 2010 tests
-rw-r–r–. 1 root root 892 Oct 18 2006 THANKS
-rw-r–r–. 1 root root 1257 Nov 10 2006 TODO
e) Now let us change directory into the debian directory inside the
root@wisdom:~/hello-debhelper-2.5# cd debian/
-rw-r–r–. 1 root root 9820 Aug 14 23:19 changelog
-rw-r–r–. 1 root root 2 Aug 14 23:19 compat
-rw-r–r–. 1 root root 890 Aug 14 23:19 control
-rw-r–r–. 1 root root 2264 Aug 14 23:19 copyright
-rwxr-xr-x. 1 root root 783 Aug 14 23:19 rules
The ‘debian’ directory has the control, rules, changelog, copyright and compat files.
f) Once the control, rules, changelog and copyright files are edited we need to move one directory back up into the source as follows.
root@wisdom:~/hello-debhelper-2.5/debian# cd ..
g) Now build the Debian Package using the dpkg-buildpackage -uc -us -sa as follows.
root@wisdom:~/hello-debhelper-2.5# dpkg-buildpackage -uc -us -sa
h ) Now move up one more directory
root@wisdom:~/hello-debhelper-2.5# cd ..
drwxr-xr-x. 11 root root 4096 Aug 14 23:25 hello-debhelper-2.5
-rw-r–r–. 1 root root 1777 Aug 14 23:25 hello-debhelper_2.5-1_amd64.changes
-rw-r–r–. 1 root root 60456 Aug 14 23:25 hello-debhelper_2.5-1_amd64.deb
-rw-r–r–. 1 root root 5456 Aug 14 23:25 hello-debhelper_2.5-1.diff.gz
-rw-r–r–. 1 root root 791 Aug 14 23:25 hello-debhelper_2.5-1.dsc
-rw-r–r–. 1 root root 582535 Feb 14 23:34 hello-debhelper_2.5.orig.tar.gz
drwxr-xr-x. 2 root root 4096 Aug 11 20:14 logs
i) As you can see the hello-debhelper_2.5-1_amd64.deb file has been created.
j) Now use the dpkg -i hello-debhelper_2.5-1_amd64.deb command to install the debian package.
root@wisdom:~# dpkg -i hello-debhelper_2.5-1_amd64.deb
Evening session on 7/8/2010
Once Karthik’s session was over, Karthik and Kushal left together for a round of beer and me and Pavithran decided to head to the session conducted by Praveen and Onkar on Debian Packaging in the Lab.
Praveen and Onkar finished the session at around 7.30 and Onkar left as he had some personal commitments. Once the session was complete, we were joined by Vincent Vikram, Raghavendra and We (Me, Praveen, Pavitran, Vincent, Ragavendra and Vipul A M) decided to head out somewhere to have supper.
In the true Open Source Model, all 6 of us had six different opinions on the hotel to choose, a series of funny things happened, Vikram called his brother in Bangalore to inquire about a so called restaurant called ‘Opus’ that according to him was _the_place_to_have_food_in_Pune
Praveen in his true geek style took out his 3G Mobile and started searching Google Maps for the resturant called ‘Opus’.
We finally after around 20 minutes of heated brainstorming, GPRS sessions etc we decided on a place somewhere in M.G Road where we had supper and soon after I left to get some sleep at Ramki’s place in Kalyani Nagar.