For a few months now I’ve been researching programs to write in. I have OpenOffice, I tried AbiWord, I use gedit for text files. They’re all good programs, but they’re not what I want to write in. I want something ultra simple. Very basic formatting, spellcheck, light quick load time. The best option I found was Tomboy, a sticky note application. It supports very simple formatting, has a spellcheck, and is dead simple. It loads almost instantly. But, it saves notes automatically in its own format. There’s no way for me to save different versions, choose a file name or location, etc. It’s fine for the writing, but I need to go elsewhere to save.
In the last couple of days, I discovered gwrite. It’s a very simple WYSIWYG HTML editor. It has the potential to be exactly what I want, but it’s very young software and still has a few usability bugs. I’ve reported them to the program’s author, so maybe it’ll improve in time. I might even look at the source code and see if I can provide some patches myself.
But, that’s not the point of this post. This post is about lyx, which is a seriously cool application I’ve just discovered. It’s a “writing tool”, not a word processor. It’s a tool designed for scientific and other authors to simply write text. It’s based on an underlying technology called LATEX. As I understand it, and I’m completely new to this whole thing, LaTeX allows an author to just write. The layout of chapters, titles, indentations, bullet points, and all that jazz, is handled by LaTeX macros. What does that mean? Well, I think it means I just write, then lyx, LaTeX and TeX make it look beautiful.
So, all excited, I decided to install lyx. This is where I hit a problem. I was prompted to download 438MB of data and use 745MB of disk space. That’s outrageously huge for a single program. I was blown away, it makes installing lyx many times larger than OpenOffice. I was strongly intrigued by what took up so much space, so I had a little sniff. It turns out that more than 70% of the download size and almost 60% of the disk space is used by documentation. Mostly, documentation for underlying applications which I didn’t specifically choose to install, they’re required to make lyx work.
Being on a slow internet connection, I decided waiting the day or two for 438MB to download was just too much. There must be another way. A little research later, I found my solution in a program called equivs. Equivs is a pair of tools to create shadow or dummy debs. In my case, this meant creating a dummy package to make apt think that I had already installed the massive collection of documentation that was necessary to install lyx. Thus I was able to install lyx by downloading only 117MB of data and using only 302MB of disk space. Still astronomically huge, but less than half of what I was originally facing.
And so, onto the point of this post. How does one do that? If you want a simple answer, here it is. Step 1, install this file. Step 2, install lyx as normal. Bingo, jobsagoodun. 🙂
For those who are interested, I’ll explain the process on Ubuntu 10.04. Install equivs in the usual way (
sudo apt-get install equivs will do the trick). Now create a new directory, I called it equivs-texlive-dummy-docs. In that directory, run
equivs-control texlive-dummy-docs.ctl. Now edit the newly created file. Mine looked like this. Next run
equivs-build texlive-dummy-docs.ctl. This command creates a new file called texlive-dummy-docs_1.0_all.deb. That file can be installed with
sudo dpkg -i texlive-dummy-docs_1.0_all.deb.
It took me a few hours to put all this together. Hopefully if you’re facing the same challenge, you can install one file and be done. 🙂
Update: I discovered that all these packages are installed because apt is configured to install recommended packages by default. I tried installing lyx without any of the recommended packages using
sudo apt-get install --no-install-recommends lyx, but previewing documents from lyx didn’t work. Instead I reverted to my equivs texlive-dummy-docs package. If you feel passionately about this topic, as I do, please chime in on this bug.