Download and Share Files with the Best P2P Software




Download and Share Files with the Best P2P Software

File sharing is here to stay, and Ubuntu provides some powerful tools that enable users to join the revolution.

Peer-to-peer is huge and getting bigger all the time. Linux users don't have to be left out of all the excitement. In fact, we have a huge variety of P2P apps and networks from which to choose. In this hack, I'm going to show you how to install several different P2P apps; using them, however, will be up to you. And be sensible about what you share, OK? I don't want any large organizations, whose job is protecting dying cartels, suing you.

BitTorrent

When it comes to P2P, first and foremost on any serious Linux user's machine is BitTorrent, the fabulous technology developed by Bram Cohen that makes downloading ISOs and other huge collections of files easy, fast, and stable.

Don't know how BitTorrent works or what makes it special? See the Wikipedia article at http://en.wikipedia.org/wiki/Bittorrent. Also at Wikipedia, there is an excellent comparison of the various BitTorrent clients (http://en.wikipedia.org/wiki/Comparison_of_BitTorrent_clients).


There are oodles of BitTorrent apps, and they can all be classified as either command-line or GUI-based. You should know about both, since they each have their purposes. If I'm looking for something quick and dirty, I use the command line; if I want a lot more info and control, I use a GUI.

Command line

You probably already have BitTorrent installed on your copy of Ubuntu, which the following command will confirm:

$ whereis bittorrent
bittorrent: /usr/share/bittorrent

If you don't have it on your computer, run the following:

$ sudo apt-get install bittorrent
               

Accept any dependencies if they're requested, and now you're ready to roll.

To test the software, try downloading a Linux ISO image. Open Firefox and head over to http://linuxtracker.org, which tracks many different Linux distros, all available via BitTorrent. Find a distro that intrigues you, and click on the little floppy-disk icon. When Firefox asks you where to save the .torrent file, pick a location on your hard drive and save it (Firefox may just go ahead and drop it in the Desktop directory). In my case, I'll use ~/iso, a directory in my home for ISO images. Close Firefox, open your terminal, cd to the directory containing the .torrent, and then use the text-mode BitTorrent client (btdownloadcurses) to download the file:

$ cd ~/iso
$ ls
KANOTIX-2006-CeBIT-RC3.iso.torrent
$ btdownloadcurses --responsefile KANOTIX-2006-CeBIT-RC3.iso.torrent
               

Once BitTorrent starts up, you'll see information about the progress of your download (and upload, since BitTorrent also shares whatever you download with other users; if you want to limit upload speed, use the --max_upload_rate SPEED option on the command line, replacing SPEED with the speed in kilobytes per second):

| file:     KANOTIX-2006-CeBIT-RC3.iso
| size:     694,765,568 (662.58 MiB)
| dest:     /home/scott/iso/KANOTIX-2006-CeBIT-RC3.iso
| progress: ##_____________________________________________ _
| status:   finishing in 1:09:25 (3.5%)
| dl speed: 193.6 KB/s
| ul speed: 0.5 KB/s
| sharing:  0.007  (0.2 MB up / 28.5 MB down)
| seeds:    13 seen now, plus 0.882 distributed copies
| peers:    1 seen now, 85.7% done at 56.2 kB/s

If you have a URL instead of a torrent file, use a slightly different command:

$ btdownloadcurses --url "http://linuxtracker.org/download. 
php?id=1624&name=KANOTIX-2006-CeBIT-RC3.iso.torrent"

The same progress information will appear, allowing you to follow along with the progress of BitTorrent. Just leave your terminal open until your download finishes. In order to give something back to your fellow BitTorrent users, it's a good idea to leave everything running until your upload is equal to your download. When you're ready to stop BitTorrent, just press Q to quit.

For more information about using BitTorrent on the command line, use man bittorrent. There are actually a lot of different options you can use to customize BitTorrent exactly to your needs.


GUI

There are lots of good BitTorrent GUIs out there, but Azureus is probably the bestwith the most features, constant updates, and a dedicated development team. Before you can use the program, however, you need to install Java [Hack #18], since Azureus requires it. (Sun's licensing, however, makes it impossible for Ubuntu to include the official Java Runtime Environment in its repositories.)

After you've installed Java, download Azureus from http://azureus.sourceforge.net/. Extract the file somewhere, such as /opt:

$ cd /opt/
$ sudo tar xvfj /home/bjepson/Desktop/Azureus_2.4.0.2_linux.tar.bz2
               

You can now run Azureus by executing /opt/azureus/azureus. As you can see in Figure, it's a program that gives you an enormous amount of data about the files you're downloading and sharing.

Azureus is a full-featured, powerful P2P app


For more on this great app, check out an article I wrote for Linux Magazine titled "Azureus: A Better Way to BitTorrent" (http://www.linux-mag.com/content/view/1923/43/). It'll give you some tips when it comes to using Azureus that you should find useful.

aMule and eDonkey2000

aMule is a P2P client for the eDonkey2000 (or ed2k) network, which, according to Wikipedia, is the most widely used P2P network in the world (see http://en.wikipedia.org/wiki/EDonkey_network for that statistic, as well as some other important information you should read if you plan to use the ed2k network). You can install aMule using apt-get, since it is part of Ubuntu's universe repository.

Make sure that the universe repository [Hack #60] is enabled, and then enter the following:

$ sudo apt-get install amule
            

You'll be asked if you want to install some other packages that aMule needs, so go ahead and say yes. When apt finishes, you can start aMule by going to the K menuaMule (if you use KDE) or ApplicationsaMule (if you use GNOME). The program will start up, as you can see in Figure.

Running aMule


aMule is running, but there's a lot more to do. To configure and use aMule, start with the "aMule wiki" (http://www.amule.org/wiki/index.php/Main_Page), especially the Getting Started page (http://www.amule.org/wiki/index.php/Getting_Started). Another great source of help is the aMule forums (http://www.amule.org/amule/index.php). Try out aMule: you really can find just about anything there.

LimeWire and Gnutella

One of the first solutions to the centralized-server problem posed by Napster was the Gnutella network (for more info, see http://en.wikipedia.org/wiki/Napster and http://en.wikipedia.org/wiki/Gnutella). Today, there are many Gnutella clients available for Linux users, but one of the best is undoubtedly LimeWire. There are two versions of LimeWire: the pay version (which is $18.00 for six months of updates) and the free version, which will constantly bother you to upgrade to the pay version but is otherwise adware- and spyware-free.

To get the free version, point your web browser to http://www.limewire.com/LimeWireSoftLinux, and you should be prompted to accept a download. It's an RPM file, which normally won't work on a Debian-based distro like Ubuntu, but don't worry. You're going to use a wonderful program called Alien to convert the RPM into something you can use on your distro. First, you'll need to install alien:

$ sudo apt-get install alien
            

You may have to approve a few additional packages that satisfy dependencies, so go ahead and do so. Once alien is in place, you can use it to transform the RPM into a DEB suitable for installing on your Ubuntu box:

$ sudo alien LimeWireLinux.rpm
limewire-free_4.10.9-1_i386.deb generated

Now you can install the LimeWire DEB:

$ sudo dpkg -i limewire-free_4.10.9-1_i386.deb
            

As a bonus, you now have a DEB that you can use on other Ubuntu machines under your control, or you can pass it along to friends.

To use LimeWire, go to the K menuLimeWire (for KDE) or ApplicationsLimeWire (for GNOME). LimeWire will open and ask you a few questions to get started, and then you can begin using it to search for goodies, as you can see in Figure. (Regrettably, some of the search results appear to be unauthorized copies of books and other material.)

LimeWire in action


LimeWire is a powerful program that connects to a large and popular network, so you should be able to have a lot of fun with it.

Other P2P Apps

I've shown you programs for many of the popular P2P networks, but there are many others out there, and it seems like new networks and programs pop up all the time. A great way to keep up-to-date with this growing technology is through the Wikipedia article "Comparison of file sharing applications" (http://en.wikipedia.org/wiki/Comparison_of_P2P_applications). If you see one that looks interesting, do a Google search for that app or network, followed by the word "Ubuntu"; so, for instance, if a new P2P app appeared named "arglebargle," you'd query Google for arglebargle ubuntu to see if there was any Ubuntu-specific info available. Just remember: be careful with what you share!

Scott Granneman