How To Develop Websites On Linux

Package Manager: Your Best Friend

If there is one thing I really love on every Linux distro I have used, it is the package management. Okay, some are better than others, but generally speaking you need only the command line to take control of your system applications. Package managers help you find, install and keep track of security updates and new versions of your applications. And you can install more than one application at a time, even if they are not related.

Depending on the package manager, when you search for and install new applications, others that might work well with the ones you have found are suggested to you, such as GUIs for configuring and managing an FTP server.

Some bundles for installing AMP include too many applications (even on Linux) or are strict in what they have packed. But when using a package manager on Linux, installing a server environment can be easier and flexible: you can tailor your installation more efficiently, choosing only what you need. Why would you install PHP if you are not a PHP developer? Why install MySQL if SQLite serves your needs? You probably don’t need an FTP server or an email service either. Nevertheless, you can install any of them easily if you need to in future. Also, you needn’t be restricted to Apache if you plan to use, say, lighttpd.

Open-source version control systems are available for Linux and, even better, in distro repositories. For Debian, you have Git (as git-core), Mercurial, CVS, Subversion and Bazaar all in the official repository (though Bazaar is over the backports and unstable). No need to go to a bunch of different websites.

Further Reading

  • The Perfect Server: Debian Lenny
    Tips and instructions on how to set up a complete server on Debian
  • Debian lighttpd
    How to configure a lighttpd server on Debian
  • Gentoo Tutorials
    A collection of tutorials at Getoo Wiki. Could be useful for others distro, too.
  • CrossFTP Server
    An FTP server with an LDAP/database back end and GUI configuration/monitoring.
  • GAdmin ProFTPD
    GAdmin module for administrating ProFTPD servers using a GUI.
  • PureAdmin
    PureAdmin is a user and server administration for the pure-ftpd.

Native Multi-Paste And Multiple Desktops

I started using Linux seriously at the end of 2003, when I got sick of Windows 98 SE freezing after 20 minutes of use and having to be reinstalled after 2 weeks.

After installing Debian and exploring KDE features, I discovered how cool and useful the virtual multi-desktop concept was. Now when I use other operating systems, this is what I miss most. But really understanding how it can help you organize your windows and work takes some time.

Another thing I find really helpful and miss in every other system I use is being able to buffer two things on the clipboard with any external tools. (Okay, I know when using Vim you have as many buffers as keys, but I’d need a whole book to talk about Vim!) All I need to do is highlight a piece of text and press the middle button to paste it. And if I have something in the buffer (loaded previously with Control + C), I won’t lose it.

You have plenty of options for controlling multiple buffers in the clipboard. KDE already comes with Klipper, which is great. GNOME comes with no such tool, but you do have some good options (I use Parcellite).

One little thing I miss is a native way to call programs without having to click on their icons or menu entries or call them through the terminal. GNOME and KDE both have a native application runner that you can call by pressing Alt + F2. Then, just start typing and it shows your options. Even though QuickSilver, and programs like it, does something similar and even better, you have to install it.

Further Reading

A Note About KDE

Linux is a rich world and has many variables to experiment with. I have never used any of KDE’s specific tools. For programming, I use NetBeans. I have used KWriter for simple edits but never for programming (nor Kate). Though I haven’t used KDE4, I can say by experience that, for file browsing, Konqueror is a killer app: integrated preview for many file types, native access to SSH, (S)FTP and other network protocols, extensible, tabbed file browsing and many other great features.

Conclusion

We have seen a lot of simple tools to play with, a rich environment for building testing and development servers and a good range of tools to improve your workflow. Although Linux isn’t the most popular OS for desktops, it is not necessarily ill-suited to most kinds of development work — and it may even be better than more popular OS’s. It is up to you now to try it if you are not satisfied with your current environment.

Further Reading

  • Vim
    Vim official page
  • Vim doc
    A Vim documentation project, with references, tips, FAQs and tutorials. A good resource for any Vim user.
  • Shlomi Fish’s Vim for begginers
    A good place to start if you want to learn Vim.
  • VIM for Django
    Tips, plug-ins and scripts to make Vim more suitable for Django.
  • Vim for Rails
    A plug-in to enhance Vim for Ruby On Rails.

author: Ricardo Cappellano

-->