I have at least three posts I want to share on my experience of upgrading to Linux Mint 15 Olivia from Mint 14. This post is more of a Technical Addendum, but instead of doing it last we’re going to post it first.
To be more precise on our upgrade, we’re actually doing a new Olivia install on a PC that was formerly running Windows Server 2008. On our liberated PC we will then be recreating the applications, databases, services, configuration settings and media that I use every day on the Linux 14 box.
Here’s an overview of what we’ll be doing.
- Install Linux Mint 15 Cinnamon 64x Edition
- Reconfigure Ubuntu One and Dropbox Cloud Storage Services, since they hold most of the data we’ll be transferring from the Linux Mint 14 box.
- Complete installation of the remaining LAMP stack with Apache, MySql and PHP
- Setup everyday apps like Thunderbird and Filezilla, and transfer all data
- Install my Development Editor, Sublime Text 2 and duplicate the theming and plug-ins from the Linux Mint 14 box
- Migrate MySql Databases. Install PostgreSQL.
- Transfer configuration files like .bashrc, .ssh keys, .irbrc for Ruby and Gimp menurc file to transfer custom keyboard shortcuts
- Setup Samba to share data across machines on the local network
- Recreate WordPress web sites on the new machine
- Install Ruby
- Install Rails and recreate Rails web sites on the new machine
- Install Passenger to support local Rails sites
Here we get to the Tech Notes part, where my main intention is to make a record of the details so when I upgrade to Mint 16 Petra later this year everything will be in one place.
Installing Linux Mint 15 Cinnamon
I plan on getting into this more in another post. Overall it was pretty smooth. In past Mint 14 installs I was able to shrink existing Windows partitions, but for some reason I couldn’t make it happen with Windows Server 2008.
Since I had no plans on ever firing up Windows Server again in my life, it was an opportunity to pave the entire drive and start fresh with Olivia. The only other thing I’ll mention here on the Mint install is that I appreciated the new Driver Manager in Olivia to manage proprietary drivers. It came in handy with my Nvidia display card.
Setting Up Ubuntu One and Dropbox
I use Ubuntu One more than Dropbox, but I had data from the Linux Mint 14 box on both and needed to start with making them both available.
For Ubuntu One
sudo add-apt-repository ppa:noobslab/apps
sudo apt-get update
sudo apt-get install ubuntuone-client ubuntuone-control-panel ubuntuone-client-proxy ubuntuone-control-panel-qt
cd ~ && wget -O – “https://www.dropbox.com/download?plat=lnx.x86_64” | tar xzf –
Then fire up the Dropbox Daemon with
Dropbox will show up in the toolbar after a logout/login.
Time to install Apache, MySql and PHP. There are a ton of guides out there. This one from Jeremy Morgan was really good, though I didn’t perform his publishing method of modifying the default location of Apache sites.
On several install processes I noticed “APACHE Could not reliably determine the server’s fully qualified domain name.” I remembered that from installing Apache on Mint 14 and fixed it with adding
to the apache2.conf file.
PHPAdmin wouldn’t load initially. That was resolved by an Include in the apache2.conf.
Email. ‘Nuf said. Need to make sure Thunderbird is up and running. That was super easy, since Thunderbird is installed in Mint 15 (unlike Mint 14 if I recall correctly) as well as FileZilla now standard in Olivia.
Transferring all email accounts, messages, contacts, FTP site configurations and so on was a non-issue. Simply copying the .thunderbird and .filezilla configuration directories to the new machine via Ubuntu One and I was up and running without skipping a beat or an email message.
I knew I would need to install PostgreSQL to support some of the Ruby Gems I use, so I installed that.
sudo apt-get install postgresql
sudo apt-get install libpq-dev
sudo apt-get install pgadmin3
Setting up the WordPress sites was non-eventful. Ported over the available-sites config files and copied over the website contents.
Transferring the MySql databases was interesting. There are several ways people like to do this. What worked best for me was using mysqldump to create .SQL files on the original machine, creating the databases on the new machine and using mysqldump again to populate the database.
backup: # mysqldump -u root -p[root_password] [database_name] > dumpfilename.sql
restore:# mysql -u root -p[root_password] [database_name] < dumpfilename.sql
Here’s a good reference on using mysqldump.
Sublime Text 2
Time to install and configure Sublime Text 2. I installed Sublime Text 2 three times now, and each time I think I did it differently. I like how I did it today with Mint’s Synaptic Package Manager using this Code Project article as a guide.
sudo add-apt-repository ppa:webupd8team/sublime-text-2
sudo apt-get update
sudo apt-get install sublime-text
It was essential to duplicate my Linux Mint 14 Sublime Text configuration without having to reinstall my theme and plug-ins. That was easily achieved by copying my old ~/.config/Sublime Text 2 contents to the new machine.
Samba is great. Real easy to configure. Comes installed in Linux Mint but you wouldn’t know it because there are no visual clues for configuration. Must remember to install the Samba Configuration Tool with APT as I describe on this NixMash post.
One of the things I like about Linux distros like Mint which require a fresh install on upgrades is that it’s a good chance to do things cleaner and better this time. In the case of Ruby, I had documented my hit-and-miss approach to installing Ruby here on NixMash. With Olivia I was able to do a more pure RVM-based approach to Ruby and Rails, using Gem Sets to isolate differently versioned applications. The guide I used was the “Technotard Method” I used before.
The Gem Set I created that will support my existing Rails apps in development is Ruby 2.0.0 with Rails 3.2.13, using the Gemset Basics at RVM.IO. Here are the RVM command highlights.
$ rvm 2.0.0-head
$ rvm gemset create rails3213
$ gem install rails -v 3.2.13
$ rvm use 2.0.0-head@rails3213 –default
sudo apt-get install nodejs
Since using an isolated, non-sudo configuration of RVM, Passenger installation highlights were
gem install passenger
The Passenger Install (which is excellent, by the way) listed the modules I needed to install before it could build.
sudo apt-get install libcurl4-openssl-dev
sudo apt-get install apache2-threaded-dev
sudo apt-get install libapr1-dev
sudo apt-get install libaprutil1-dev
Once it created my system’s Passenger Module, the install displayed what I needed to add to my apache2.conf file.
LoadModule passenger_module /home/daveburke/.rvm/gems/ruby-2.0.0-p247/gems/passenger-4.0.5/libout/apache2/mod_passenger.so
Till Next Time
I hope the tech notes were as good for you as they were for me. I know I’ll appreciate them when Petra Time comes and it’s time to do this again for another fresh start.