With new OS installs comes the need to redo my development environment. Instead of running through and manually installing what I need, I created a quick-and-dirty bash script to do it for me. Check it out:
Ruby 1.9.3 and
Rails 3.2.1. Make sure to run this as a
# Thanks to http://xyzpub.com/en/ruby-on-rails/3.2/rails3-install-debian.html sudo apt-get -y install build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison subversion python curl -L https://get.rvm.io | bash -s stable source ~/.rvm/scripts/rvm rvm autolibs enable rvm install 1.9.3 gem update gem install rails --version '~> 3.2.1' echo "source \$(rvm 1.9.3 do rvm env --path)" >> $HOME/.bashrc echo "Complete (Ruby 1.9.3 - Rails 3.2.1)"
Smylers over at perl.org has some amazing SSH tips and tricks to share. I recently discovered this post as the result of a Reddit comment. The post shows you everything, from port and X forwarding, to persistent and faster connections. Oh, and how to generate and use keypairs, in case you weren't already. Check it at the link below:
Since switching to
for the majority of my computing needs, I started looking for a way to
get more up-to-date packages. The stability is nice, but I'm willing to
live with some bugs if it means that my desktop can have more frequent
updates. Turns out, all I need to do is change a few words in my
/etc/apt/source.list file, and the system is upgrade with a simple
apt-get update and
apt-get dist-upgrade. The usual disclaimer
applies, using software in
unstable could be dangerous and
cause you to lose data / get divorced / start world war 3 (in that
Here's my stable
/etc/apt/source.list file before:
# # deb cdrom:[Debian GNU/Linux 6.0.7 _Squeeze_ - Official Snapshot i386 LIVE/INSTALL Binary 20130303-21:07]/ squeeze main # deb cdrom:[Debian GNU/Linux 6.0.7 _Squeeze_ - Official Snapshot i386 LIVE/INSTALL Binary 20130303-21:07]/ squeeze main deb http://ftp.us.debian.org/debian/ squeeze main contrib non-free deb-src http://ftp.us.debian.org/debian/ squeeze main contrib non-free deb http://security.debian.org/ squeeze/updates main contrib non-free deb-src http://security.debian.org/ squeeze/updates main contrib non-free # squeeze-updates, previously known as 'volatile' deb http://ftp.us.debian.org/debian/ squeeze-updates main deb http://ftp.us.debian.org/debian/ squeeze-proposed-updates main contrib non-free deb-src http://ftp.us.debian.org/debian/ squeeze-proposed-updates main contrib non-free deb-src http://ftp.us.debian.org/debian/ squeeze-updates main contrib non-free
And here's my testing
/etc/apt/sources.list file after:
# # deb cdrom:[Debian GNU/Linux 6.0.7 _Testing__ - Official Snapshot i386 LIVE/INSTALL Binary 20130303-21:07]/ testing main # deb cdrom:[Debian GNU/Linux 6.0.7 _Testing_ - Official Snapshot i386 LIVE/INSTALL Binary 20130303-21:07]/ testing main deb http://ftp.us.debian.org/debian/ testing main contrib non-free deb-src http://ftp.us.debian.org/debian/ testing main contrib non-free deb http://security.debian.org/ testing/updates main contrib non-free deb-src http://security.debian.org/ testing/updates main contrib non-free # testing-updates, previously known as 'volatile' deb http://ftp.us.debian.org/debian/ testing-updates main deb http://ftp.us.debian.org/debian/ testing-proposed-updates main contrib non-free deb-src http://ftp.us.debian.org/debian/ testing-proposed-updates main contrib non-free deb-src http://ftp.us.debian.org/debian/ testing-updates main contrib non-free
If you look, all that changed is the word
squeeze to the word
testing. Run a find-and-replace in your favorite text editor to make
the switch. If you're really living on the edge, you can make the switch
unstable branch, but I hear things break a bit more over there.
After my growing distaste with Ubuntu, I decided that I needed to find a new Linux distribution to stay with for a while. I had last gone distro-shopping for my main choice many years ago, and it seemed like a good time to revisit that question.
The first choice on my list was Arch Linux. With all the hype it's been getting recently, I figured it would be worth my time to try something non-Debian-based for a change. I ran this for the better part of 6 months, and was very pleasantly surprised. The system ran fast, was extremely minimalistic, and I learned more about Linux internals with Arch than with any other distribution I tried in the past. The system was finally, truly mine. It ran everything I wanted it to, and nothing I didn't want it to. I controlled everything. This became a blessing and a curse over time. I did learn exactly how everything interacts with a Linux system, but I also spent way more time managing my setup and troubleshooting than I did actually getting work done or enjoying my computer. I love figuring out problems and toying with my system, but Arch left me almost overwhelmed with knobs and buttons, there wasn't anything left up to chance, I controlled it all. I came up with a short list of things I wanted in Arch, then tried to install it on my other machines. This is where I hit a snag. Arch is so minimalistic, I had to do all the setup work again on the other machines. This isn't actually a problem in the long run, as Arch never goes out of date, but it takes forever for me to customize my system and make it just what I want it to be. ArchBang does a fantastic job of getting you an up-and-running ArchLinux systems with a barebones networking and GUI setup, right from the start, but there are still a lot of things I need to customize. The ArchLinux ecosystem in general is nice to work in, but, in my experience, many of the larger updates require manual intervention and/or configuration changes. As time went on, I felt like I was maintaining my system more than I was using it. I can't bash Arch, I really can't. It is a wonderful project that has taught me more about Linux in 6 months than I've learned in the past few years, but it isn't pick-up-and-go enough for me, it is really valuable as a learning experience, not so much as a "Click and Run" distribution.
The next logical leap from ArchBang was CrunchBang. CrunchBang is a customized, slimmed down Debian system that thrives on simplicity and ease-of-use. It is a lightweight Debian distribution with a major focus on getting things set up right away and keeping it all simple. CrunchBang is awesome, it really is. Its the best, most stable parts of Debian with the minimalistic featureset of ArchBang. As much as I loved it, I didn't really fall in love with OpenBox. I love the minimalism, but I really missed the wide breadth of configuration options I got with Gnome 2 or XFCE and I really missed Compiz Fusion, which wasn't playing nice with OpenBox.
In the end, I decided to choose the most logical next step from Ubuntu: Debian with XFCE. It offers a lighter install than Ubuntu, a lot of system control, all while being easy to use and keeping me inside the Debian ecosystem. I am going to start looking at Mate soon, as I really love Gnome 2, and would love to see the project continue. To me, Gnome 2 was complex enough to do what I wanted, yet simple enough to look clean and stay out of my way.
I'm open to suggestions on what other distributions to try, if you have an idea, let me know in the comments.
I've recently started distro shopping again. I've been running Xubuntu 12.10 for a while now, after trying several different distributions, including the many Ubuntu flavors. Early in my Linux life, I started with SuSE, put up with YaST until I couldn't stand it, then moved to Ubuntu. I had been a mostly-happy Ubuntu user since 6.06. Ubuntu had everything I needed in a Linux distribution: Stability, speed, community, and ease-of-use. I could work, play, and live on that system. Unfortunately, that's started to change recently. I find myself wanting a bit more stability, a bit more focus on the desktop, a bit more speed, and a bit more respect towards system customization. Everyone points to Unity, everyone points to the ads thrown around, some people point to Ubuntu One and the not-so-open Software Center. These are problems, these are contributing to me picking something else, but the main issue is that I believe Canonical is losing their way with Ubuntu, both on the desktop and server side. They've simply grown too large, gotten too commercial. I don't want this to turn into the "they sold out" rant, but it is looking like it will.
The new "Metal as a Service" project they have going on, is a decent foray into the cloud services market, but I'm not sure why they don't just jump right into OpenStack and offer a non-branded solution. Instead, they come up with the Ubuntu Cloud and put all of their effort into Juju and Charms. I'm ok with new projects, but it seems a little sophomoric and irresponsible to throw so much power at a brand new system, re-brand it as your own design, and heavily sell support packages based around it. Its very annoying to read through the documentation and get sales pitches left and right.
Lets get this out of the way, and its nothing new: Unity is an unmitigated disaster, especially this latest release. It is very annoying to power users, difficult to customize, and difficult to run on low-end machines (AKA netbooks). I don't know any long-time Ubuntu user who prefers Unity to their old Gnome 2 setup. Difficult, annoying, and locked down is not something you should be pitching to users, especially Linux users, who regularly want to tear something apart and make it their own.
Realistically, I could just as easily blame KDE and Gnome for releasing shit-tastic products. KDE4 was annoying at best, with the over-reliance on widgets and slow, poorly-organized menus. Gnome 3 was utter shit. There aren't any real redeeming qualities to this window manager. It is slow, has no customization, even a few years there aren't any decent applications for theming or changing the look/behavior of your system. This isn't easy enough for novices, it isn't customizable enough for power users, and it is far too confusing for anyone in between. Hold the shift key while clicking your username to get the shutdown menu option to appear? Who the fuck thinks of that? What kind of UX testing (if any) was done to ensure that users wouldn't riot? Needless to say, the main line of Linux window managers have taken a massive step backwards, so Ubuntu isn't alone in this.
Ubuntu One has become increasingly annoying and hard-to-avoid. The Ubuntu-only imitation Dropbox was both a bad idea, and poorly implemented. Canonical selling music through this service was an interesting idea, but also poorly implemented. What is most concerning about this is how the Ubuntu One Music Store is integrated into the default music application, Rhythmbox, by default. In the past few years, Canonical is basically begging people to buy into the "Ubuntu Experience", and this isn't appropriate for an open source operating system.
The Software Center is another point of contention, but to a smaller extent. It does good things for new users, but the featured software is never open source or free, its always a legal DVD player or a game. This isn't a bad thing, but Canonical doesn't need to compete with Apple or Android (even though they seem to be moving closer to that each day), they don't need an app store, and they shouldn't be abandoning the open source community.
In essence, it seems that Canonical has lost their way, like these are the awkward teenage years of Ubuntu. I really hope they snap out of this soon. With all the choice in distributions today, there aren't a lack of alternatives around, so worst case, people will leave and start new somewhere else, best case: Canonical gets fed up with themselves, goes back to their roots, and starts making Linux easy, stable, and fun again.
Need some more Ubuntu-hate? Check out Micah F. Lee's post.
In my next post, I'll write about my journey through a few different Linux distributions, and (what I believe to be) the distribution I've settled on for the majority of my new installs. Stay tuned.