Linux IRC mini-HOWTO

Fr�d�ric L. W. Meunier

v0.1 8 January, 2001
Revision History
Revision 0.1        2001-01-08          Revised by: fredlwm
Second revision.


This document aims to describe the basics of IRC and respective applications
for Linux.

-----------------------------------------------------------------------------
Table of Contents
1. Introduction
   1.1. Objectives
   1.2. Miscellaneous
   1.3. Translations


2. About IRC
3. Beginner's guide on using IRC
   3.1. Running the ircII program
   3.2. Commands
   3.3. IRC Etiquette


4. Console IRC Clients
   4.1. ircII
   4.2. EPIC
   4.3. BitchX
   4.4. irssi


5. X Window IRC Clients
   5.1. Zircon
   5.2. xIrc
   5.3. KVIrc
   5.4. X-Chat


6. IRC Servers
   6.1. IRCD
   6.2. IRCD-Hybrid
   6.3. ircu
   6.4. Bahamut


7. IRC Bots
   7.1. eggdrop


8. IRC Bouncers (IRC Proxy)
   8.1. bnc
   8.2. muh
   8.3. ezbounce


9. Installation
   9.1. Clients
   9.2. Servers


10. But what's already included in my distribution? (Linux on x86)
   10.1. Debian
   10.2. RedHat
   10.3. Slackware


11. Hell and Paradise
   11.1. Gods
   11.2. Saints
   11.3. Angels
   11.4. Devils


12. Revision History

-----------------------------------------------------------------------------
1. Introduction

This document is still WIP, and should be treated as such. I'll do my best to
keep it updated and accurate.

The following bibles shouldn't be ignored:

��*�RFC1459 by Jarkko Oikarinen and Darren Reed was the first about the
   Internet Relay Chat Protocol. It can be found at [ftp://ftp.isi.edu/
   in-notes/rfc1459.txt] ftp://ftp.isi.edu/in-notes/rfc1459.txt.

��*�RFC2811 by Christophe Kalt updates RFC1459 and describes the Channel
   Management of the Internet Relay Chat. It can be found at [ftp://
   ftp.isi.edu/in-notes/rfc2811.txt] ftp://ftp.isi.edu/in-notes/rfc2811.txt.

��*�RFC2812 by Christophe Kalt updates RFC1459 and describes the Client
   Protocol of the Internet Relay Chat. It can be found at [ftp://
   ftp.isi.edu/in-notes/rfc2812.txt] ftp://ftp.isi.edu/in-notes/rfc2812.txt.

��*�RFC2813 by Christophe Kalt updates RFC1459 and describes the Server
   Protocol of the Internet Relay Chat. It can be found at [ftp://
   ftp.isi.edu/in-notes/rfc2813.txt] ftp://ftp.isi.edu/in-notes/rfc2813.txt.


Also be sure to check the following sites:

[http://www.irchelp.org/] http://www.irchelp.org/.
-----------------------------------------------------------------------------

1.1. Objectives

Among others, the objectives of this mini-HOWTO are:

��*�Link important resources about IRC;

��*�Avoid common misuses of IRC by writing an IRC Etiquette;

��*�List popular clients, servers, bots, and bouncers, along with their
   maintainers, #channel, small description, download location, homepage,
   and hints;

��*�List IRC tools available in the latest release of all major
   distributions.


-----------------------------------------------------------------------------
1.2. Miscellaneous

The latest version of this document is available at [http://
www.pervalidus.net/docs/IRC-mini-HOWTO/] http://www.pervalidus.net/docs/
IRC-mini-HOWTO/.

A WIP of the next draft may be available at [http://www.pervalidus.net/docs/
IRC-mini-HOWTO-WIP] http://www.pervalidus.net/docs/IRC-mini-HOWTO/WIP/.

You can e-mail me (in English, French, or Portuguese) with suggestions about
the mini-HOWTO. I know this is far from finished, but hope you find it
useful. Just don't ask me to add your application or site. Most likely I
won't. Also don't ask for technical support. I have no time to help everyone.

BTW, someone to work on the protocol and server sides (if needed) would be
very welcome to join the project.

Fr�d�ric L. W. Meunier (<linuxdoc @ pervalidus.net>) - fredlwm at BRASnet and
OPN.
-----------------------------------------------------------------------------

1.3. Translations

Proposed translations will be linked here. Although I can write in Brazilian
Portuguese and French, I'm not going to translate this document in the near
future, so feel free to make them.
-----------------------------------------------------------------------------

2. About IRC

Excerpt from RFC2810:

The IRC (Internet Relay Chat) protocol is for use with text based
conferencing. It has been developed since 1989 when it was originally
implemented as a mean for users on a BBS to chat amongst themselves.

First formally documented in May 1993 by RFC 1459 [IRC], the protocol has
kept evolving.

The IRC Protocol is based on the client-server model, and is well suited to
running on many machines in a distributed fashion. A typical setup involves a
single process (the server) forming a central point for clients (or other
servers) to connect to, performing the required message delivery/multiplexing
and other functions.

This distributed model, which requires each server to have a copy of the
global state information, is still the most flagrant problem of the protocol
as it is a serious handicap, which limits the maximum size a network can
reach. If the existing networks have been able keep growing at an incredible
pace, we must thank hardware manufacturers for giving us ever more powerful
systems.
-----------------------------------------------------------------------------

3. Beginner's guide on using IRC

The standard IRC client is the original ircII client. It's part of most Linux
distributions.
-----------------------------------------------------------------------------

3.1. Running the ircII program

It's easy to use ircII. Let's say you want to connect to irc.openprojects.net
with the nick mini-HOWTO.

At the command line, type:

$ irc mini-HOWTO irc.openprojects.net

You can also export variables so you won't need to use them at the command
line:

$ export IRCNICK=mini-HOWTO IRCSERVER=irc.openprojects.net

Add them to your shell profile (e.g. ~/.bash_profile or ~/.zprofile) when
you're done.

Other common variables are IRCNAME and IRCUSER, to respectively set the
ircname part of a /whois and username as seen at the first line 'mini-HOWTO
is ~username@hostname (IRCNAME)'. Keep in mind that IRCUSER won't work if you
run an ident daemon (default on most distributions). If you still need to
change your username (not recommended, and I hope you're not using IRC logged
as root!), install oidentd from [http://ojnk.sourceforge.net/] http://
ojnk.sourceforge.net/, create /etc/identd.spoof with a list of users allowed
to spoof their ident, and ~/.ispoof with their reply (e.g. reply). Finally
run '/usr/local/sbin/oidentd -g nobody -N -s -u nobody'. Add this to your
startup scripts (e.g. /etc/rc.d/rc.local) when you're done.

If not set, IRCNICK, IRCUSER, and IRCNAME will be retrieved from /etc/passwd