The Linux Hurdle

Okay. After talking with a co-worker yesterday about why he should install Linux on his somewhat-antiquated Vista-ran laptop, I ran into road blocks. He’s pretty reluctant to heed my suggestion and even dip his toes, let alone jump in head-first.

I’ve tried to make points of why I like Linux better than Windows. However, the truth is that I don’t consider Linux a replacement for Windows. It’s like driving vehicles. I drive my smaller compact car almost everyday, because it’s more convenient for typical day travelling and it gets better gas-mileage. So, why do I keep my pick-up truck? It’s a gas guzzler, and depending on the time and place it can be impossible to find a parking spot. Still, if I have to haul something or traverse tougher terrain that requires a vehicle with more clearance or four-wheel drive, my truck is there to save the day. In this case, my compact car is Linux and my truck is Windows. Linux will almost always get the job done, typically faster and with less hassle, while Windows is there to provide any crucial services that Linux just can’t do.

Being that my co-worker’s laptop hard-drive is fairly full, he’s running Vista and he says he has never de-fragged his hard-drive, I’d bet that I can boot up, check my emails, pay a couple of bills, shut down and boot back up to my work space in Linux before he even reaches his desktop for the first time in Vista. And my Linux setup has been installed for nearly two years now. Though, I’d say a fresh install of Linux wouldn’t do it any better. The same can’t be said for Windows.

But like I said, I’m not saying throw Windows out the window. I’m just saying make use of the tools available to you. What’s the point of booting into Windows to do generic tasks that end up taking far longer to complete than they necessarily have to? After all, the less you use Windows, the longer it takes to slow down. Of course, good practices and regular maintenance can help keep Windows running as good as possible. But when you can minimize the amount of work necessary in those respects as well, it makes no sense not to at least dip your toes in. And the sales pitch is spot on: Linux is free, it is generally designed to boot alongside of Windows and it is fairly easy to remove it and revert back to just having Windows if you decide you don’t wish to keep it.

I hope my co-worker comes to the decision of giving Linux a shot. After all, I never used Linux once until two years ago when I decided that testing out a freely available OS seemed like a fun endeavour. It ended up causing me to change up my routine permanently.

Windows 7, LibreOffice 4 Update Issue

On two separate Windows 7 machines, one with Ultimate and one with Home Premium, I ran into the same issue when trying to update LibreOffice 4 to the latest version, 4.2.2.1.

For some reason, there is a folder nested within the LibreOffice 4 directory called program, and this folder is a bitch to do anything with. The reason I found issue with it to begin with is because the installer for LibreOffice 4 kept returning a 1303 permissions error when copying files for the installation. On my first machine, I simply restarted into Ubuntu (the machine is dual-booted) and deleted the LibreOffice 4 directory from the Windows partition using Nautilus. However, on my PC with Home Premium, which isn’t dual-booted, I decided to see if there was a way for me to remedy the issue from within Windows itself. After doing every step I could learn of to either force-delete the file or change permissions, including through CLI with an elevated command prompt, I found that nothing tried within Windows itself would work. In the end, I was still forced to use a linux boot to fix my issue, and I did that using a LiveUSB.

So, if you’re facing the same issue I did, you can take the same step that I did. If you know of a sure-fire solution that can be executed from within Windows, shared knowledge is appreciated.

LibreOffice (Latest Version) Installation for Ubuntu, Linux Mint and elementaryOS

This is somewhat of a follow-up post to a previous post regarding updating LibreOffice for Ubuntu and Ubuntu-based OS.

Because each version of Ubuntu and any OS based on it usually pulls from a specific repository where software that has been deemed stable for that version is stored, getting the latest version of a particular software can be impossible without some configurations. Having used both Ubuntu and Linux Mint, and successfully installed and updated LibreOffice using the LibreOffice PPA, I thought the same could be done for elementaryOS, which is also based on Ubuntu (the latest version, Luna, being specifically based on Ubuntu 12.04 Precise Pangolin).

However, after installing eOS and installing LibreOffice from the default repository, I then added the LibreOffice PPA and found that it caused some issues with the Update Manager in eOS. Not only would it not allow me to update to the latest version of LibreOffice, but it even seemed to interfere with eOS being able to get other updates. I couldn’t even alter the settings in the Update Manager. After removing the LibreOffice PPA from the software sources, all problems seemed to vanish with non-LibreOffice updates. The biggest problem for me at that particular moment, however, was that I couldn’t get LibreOffice updated. A few sites mentioned compiling LibreOffice source to install the latest version, which I didn’t care to do (updating was not that big of a deal for me, if compiling the source was my only option), and so I came across someone else who mentioned following the same steps I had done before, yet adding the PPA before installing the software. So, I followed the necessary steps to completely remove LibreOffice (credit to an answer on askubuntu.com).

sudo apt-get remove --purge libreoffice*
sudo apt-get clean
sudo apt-get autoremove

And then I removed the PPA by opening Update Manager, going to Settings… at the bottom-left, going to the Software Sources tab and removing it from the list. After, I simply re-added the PPA and reinstalled the software back onto the computer using the terminal.

sudo apt-add-repository ppa:libreoffice/ppa
sudo apt-get install libreoffice

I open LibreOffice and find the latest version (4.1.4.2 as of writing this post) installed.

As far as complications with updating the software further, or interfering with other updates, I can’t say. I had already ran all other updates before reinstalling LibreOffice, and so the system is showing up-to-date. I will post a comment if I see the PPA in the sources list causing any other problems, or not updating LibreOffice beyond 4.1.4.2.

There are also some articles posted on elementaryupdates.com regarding ways to configure LibreOffice and other applications to fit more into the eOS appearance, in case anyone is interested.

Update 2015.08.31

On Linux Mint 17.2, I’ve realized that there is one additional step required in addition to what I had mentioned above to update to the latest version of LibreOffice (5.0.1 as I’m writing this). You have to set the priority for the package so that Mint’s update system will allow it to be updated/installed from the PPA. To do that, you need to create the file /etc/apt/preferences.d/libreoffice.pref and place the following inside of it:

Package: *
Pin: release o=LP-PPA-libreoffice
Pin-Priority: 700

This information was taken from the Mint here.

Windows RDP and Remmina: “Unable to connect to RDP server”

If you’ve been using Remmina to RDP to a Windows machine for some time and then all of suddenly find yourself running into the error Unable to connect to RDP server <address>, take a minute to read my experience before you go through some possibly-unnecessary steps.

I occasionally reboot my modem and router, and after doing so tonight, I found I was unable to RDP into a machine running Windows 7 Ultimate on my LAN from Remmina. I immediately checked to see if I could RDP to a Windows Server machine on the same LAN from the same Remmina client and could. So, I ruled out Remmina being the problem – or so I thought.

My next check was at the network. I figured that maybe the machine was either not connected to the network or had been assigned a different IP. So I then connected a monitor the machine and checked via ipconfig to verify that the IP address was the same. I still decided to reboot my router again.

Next, I checked and rechecked the RDP settings on the Windows machine to ensure that RDP was enabled. Everything looked fine on that end, so I moved to the firewall settings. The firewall was set to allow access to RDP on the machine.

Next, I went to the net for support. I searched “unable to RDP into Windows” and naturally found lots of various explanations and solutions. Knowing that I have VirtualBox setup on the computer with network drivers installed, I decided to narrow my search to include that. That’s when I found explanations regarding issues caused by the Host-Only virtual network connection that Windows sees as an “unidentifiable” network connection type. Having had issues with this limiting my network access on a computer in the past due to Windows taking precautions in thinking it is connected to an insecure network, I jumped at several solutions that involved registry edits to tell Windows that the network connection was virtual and host-only – and that it terminated at the machine itself. Re-enabled the driver and found problem was not resolved.

I then decided to boot into Windows on my laptop and see if Windows’ own RDP client could connect to the machine. It did, but the connection seemed sluggish. I then became suspicious that either the network or the machine’s NIC were somehow at fault – which didn’t rule out in my mind that the connection on the machine created by VirtualBox could be to blame as well. I then went into the Network and Sharing settings on the machine and disabled the connection. Rebooted the machine and found myself facing the same problem.

Finally, I wisened up and searched for help: “unable to connecto to Windows RDP using Remmina” and found the solution to my problem. Again, there were several suggested solutions, but I did find the one that worked for me. One solution suggested changing the Advanced > Security value in the connection’s profile in Remmina to RDP. This not only didn’t fix my problem, but caused additional problems with connecting to the machine.

The solution, surprising enough, was as simple as removing an entry in a file. I simply opened .~./freerdp/known_hosts and removed the line that corresponded to the host. I restarted Remmina and tried to connect, getting prompted to accept the host’s key, and was happily connected. Was a little agitated that I spent so much time and work trying to resolve a problem that was so easily fixed, but happy to again have the ability to RDP into my machine.

Ubuntu Unity Dash: Removing Links

There are occasions when applications that have been removed have stale links left behind in the Unity Dash. Though it is harmless, it is annoying to see them popup as results to searches in the dash when they are useless – creating a problem by taking up search results that could lead to what you’re searching for more quickly.

Removing them is fairly simple, but it can be easy to forget if you haven’t done it before – or at least not for a while.

Most of the links in the Unity Dash are stored in the /share/applications folder. However, depending on if the application was installed for just one user or for all users determines which folder the links are stored at. If the application was installed on the system for all users, you will have to use root access to remove them from the /usr/share/applications directory. If they were installed by a user strictly for that user, they will be in the .local/share/applications directory within that user’s home.

Make sure you empty your Trash after you delete the links. They will not be removed from the Dash until you do.

Ubuntu: Creating non-buntu Startup Disks

I ran into this problem while trying to create a startup disk for OpenSUSE in Ubuntu using the included Startup Disk Creator. I noticed that only Ubuntu and Ubuntu-based isos were being listed in the program, and even when browsing to the other isos, I found that clicking to open them in the program did nothing.

After some brief searching, I came across the following thread in Ubuntu Forums. The second post within the thread was extremely helpful to me, and following its instructions led to a successful bootable USB drive with which I was able to test OpenSUSE. On top of that, I learned from the post that the Startup Disk Creator software included in Ubuntu is actually limited to only Ubuntu-based isos.

So, I thought it would be worthwhile to repost the command here on my blog for both my own records and for anyone else who might not have managed to come across the use of dd to create bootable disks in Ubuntu. From what I understand, it should work for just about any type of bootable disk. However, I can only testify that it worked for the OpenSUSE disk from my own experience so far. As always, make sure you are certain of what you’re inputting when working with CLI, and this command could cause some serious pain in terms of data loss if you accidentally designated the wrong location.

sudo dd if=/path-to-iso of=/dev/sdX bs=4096

The command should be fairly straight-forward. The if argument should be the full path that points to the location of the iso. The of argument should be the device that is being written to as the startup disk. That’s probably obvious, but I felt it was necessary to clarify just in case. I’m assuming that bs is referring to the boot sector location of the device being written to, but that is purely speculation on my part and the value was simply left as-is when I used this method of creating the boot disk.

You can also use the mount  command to list all mounted devices currently connected to your computer. If you know the name of the device (which you can see by hovering over the USB drive’s icon on the Unity launcher) you can then look through the list of devices displayed from mount  and find what device it is so that you supply the right value for the of argument when using dd. A more graphical method would be to open the Disk Utility and find the USB drive listed in the left pane. Clicking on it will then display the device information in the right pane, including where the device is mounted.

I’ve been meaning to create a Windows boot disk using this, to at least see if it would work. I need to re-install Windows on a laptop that doesn’t have a disc drive built into it, and the USB method seems my best option. I’ll add a comment or update the post with the results once I run it.

Before Installing Windows…

For anyone who is considering an upgrade for Windows, heed this warning before you choose to do so via a fresh install: get your drivers ready.

Many people take for granted that Windows works right out of the box. I think it is especially the case considering that Windows actually doesn’t work right out of the box. In most cases, Windows can’t even successfully find software drivers online when trying to install a simple peripheral device, so it surely does a poor job of working with the essential hardware of your PC as-is.

If you don’t know what I mean, then it means you’ve never taken a standard Windows installation and used it to install Windows onto a PC before. It’s safe to say that everyone is familiar with purchasing a computer with Windows pre-installed. In some cases, you may even be familiar with the luxury of having a Factory System Restore CD/DVD, though it’s not common with new PCs today. Either way, the biggest difference between having a Factory System Restore option (either on as physical medium or as an image on the hard-drive) and a standard installation method (Windows, of some version and edition, that you buy separately to use on any PC) is that the Factory System Restore method will include the drivers for your PC’s hardware already included. When you use the Factory System Restore image, your PC will boot up with the resolution looking nice and all network peripherals working as they should. Yet, if you install Windows from something other than a Factory System Restore image that is made specifically for your PC, you’ll find the resolution to be poor (and unchangeable) and no ability to access the internet even through your wired ethernet port.

In one of few ways, this is how Linux distributions really have a one-up on Windows. Because most essential hardware will work before you install the additional drivers, especially the ethernet port (which allows an easier path to obtaining essential drivers). When I installed Windows, I had to find a copy of my PC’s mobo, video and ethernet drivers, place them on a USB drive and then put them onto the PC I had installed Windows on.

In all truthfulness, Windows worked great after installing the drivers, but the real point is that you need to know to do this. I’ve heard of some people installing a Windows upgrade and then reverting back to their previous Windows version because they thought there was an issue with their PC being able to run Windows when they were presented with the lower resolution and unusable ethernet.

So, be prepared. Because if the PC you’re upgrading is the only one you have access too, and you don’t prepare a way to install the drivers onto the PC without internet-access beforehand, you might find yourself in a tough situation – such as with a temporarily useless PC.

Ubuntu / Linux Mint: Adding the LibreOffice PPA

If you’re using a previous version of Ubuntu or Linux Mint, such as 12.04 or 13 (the last LTS releases), then you’re probably using an old LibreOffice suite – at least if you choose to use LibreOffice. I believe version 3.6 is in the 12.04 repositories – which I also believe is what is used by Linux Mint 13. There’s nothing wrong with LibreOffice 3.6, but there’s also nothing wrong with wanting the latest and greatest, and 3.6 is quite a few releases behind the current LibreOffice update.

Luckily, whether you wish to re-install LibreOffice or simply update the installation that comes pre-packaged with Ubuntu / Linux Mint, getting the latest version is easy as one command line in terminal.

Simply add the LibreOffice PPA:

sudo add-apt-repository ppa:libreoffice/ppa

You will also want to update the package index:

sudo apt-get update

After this is done, simply load up the Update Manager for whichever OS you’re running, click Check and you’ll find updates listed for LibreOffice. Ubuntu typically prompts to run a partial upgrade, which is fine. I didn’t see this in Linux Mint.

If you’ve removed LibreOffice and need to install from the PPA after you’ve added it, simply submit the following command:

sudo apt-get install libreoffice

That’s it. Whether you upgrading or doing a fresh install, you’ll have the latest release of LibreOffice, along with continuous updates to the application through your Update Manager.

Linux Mint MATE: Default Num Lock, Keyboard Shortcuts and System Monitor

This post is in reference to an earlier one, which can be found here.

The difference is that this example refers to Linux Mint using the MATE desktop environment. The reason I’m posting this is because I’ve recently installed Linux Mint with MATE, and was shocked to not only find no keyboard shortcut for System Monitor (which is missing by default in Ubuntu as well) but also no shortcut to terminal. So, I will explain how to add these. The steps are actually just as simple as the ones used for adding shortcuts to Ubuntu.

Personally, I find the layout of the configuration GUI for keyboard settings a little less convenient in Linux Mint from Ubuntu’s Unity, but it’s still usable and I was able to get the job done just fine without referring to any help online. The place where I found myself stuck for a second was the command used for launching these applications. In Ubuntu, System Monitor is accessed by the command gnome-system-monitor. However, in Linux Mint with MATE, it is mate-system-monitor. Not really all that shocking once you realize it, but it took me a minute to realize that I wasn’t using Gnome or a relative desktop.

But anyway. To configure keyboard shortcuts in Linux Mint with MATE, simply go to the Menu on the taskbar and click Control Center, which is about five options up from the bottom. Under the Personal category, which is at the top of the window, you’ll see Keyboard Shortcuts, which is likely the second option down from the top at the far right. One this window is opened, you can just stop. Don’t bother looking for a shortcut for either Terminal or System Monitor – just in case you’re thinking one may exist. It doesn’t, at least not if you’re using Maya. When you’re ready to create a shortcut, just click the + Add button at the bottom. The new window that pops up is exactly like what is seen in Ubuntu. Two lines: one for the title and one for the command that is called. If you wish to create a shortcut for Terminal, the command should be mate-terminal . If you wish to create one for System Monitor, the command should be mate-system-monitor , as mentioned earlier in the post. Then assigning the key combination for the shortcuts is also exactly as in Ubuntu: you simply click the shortcut you created in the list and then when it says New shortcut to the right, you hit the key combination you wish to use on your keyboard. Done.

Lastly, if you wish to have Num Lock turned on by default when you log into Linux Mint, simply open up Control Center from the Menu (as explained above), click Keyboard under the Hardware category, click the Layouts tab at the top, click the Options… button near the bottom, expand the Miscellaneous compatibility options branch and check the box next to Default numeric keypad keys. If you’ve done this in Ubuntu, you’ll also see that this is very similar.

Ubuntu Server 12.04 – Changing Network Interface from DHCP to Static

I suppose this can be followed to set a static IP on your local network in Ubuntu Desktop as well, but this is explained with the expectation that you’re using terminal on an Ubuntu Server setup.

There are plenty of explanations of how to configure the server to use a set static IP instead of getting assigned one automatically by a DHCP server, but it seems that most tend to be incomplete. For example, it’s easy to find an explanation of editing the /etc/network/interfaces configuration to change a particular interface from using DHCP to a static address, but that seems to be where most end – which many will find leaves them unable to resolve any addresses outside the LAN after a system reboot. So I’m going to explain what I do that gets around this problem.

For every command you see here, I am executing them as root – which in some cases may require you to have sudo preceding it if you’re not. You can use the following command to login as root.

sudo su

First off, you need to open /etc/resolv.conf and note the listed IP addresses for the nameservers your server is automatically using with the DHCP settings. The reason you need to record these values is because when the machine is rebooted, the /etc/resolv.conf configuration gets overwritten – and the overwritten values will be empty since there is going to be no DHCP server providing them anymore. This is done by the DHCP client that is running on the server. Another workaround is to disable or remove the DHCP client, which will then stop the configuration from being overwritten – allowing the sustained values in /etc/resolv.conf to do the job. But I didn’t want to do that just in case I ever want to resume using the DHCP client later on, or in case I wanted to still use it for a different interface. I used nano to open the configuration.

nano /etc/resovl.conf

I simply copied the values for each nameserver in an open text editor, but you could write them down by hand on a notepad if that’s what you prefer.

The next step is the same as most other explanations: opening the network configuration and setting the static IP address.

nano /etc/network/interfaces

You’ll typically see configurations for just two interfaces here: the lo (or loopback interface) and eth0 (or the primary network interface). The settings for the primary network interface are the ones we want to edit. If your machine has multiple ethernet ports, you may see more than one, but in most cases you will just see the one. By default, it should look something like this.

# The primary network interface
auto eth0
iface eth0 inet dhcp

Instead of deleting the settings, I prefer to simply comment them out by placing a hash in front of them.

# The primary network interface
#auto eth0
#iface eth0 inet dhcp

The only reason I do this is so that if I decide to revert back to using DHCP for that interface, I only have to uncomment the lines and either remove or comment out the lines that I added to configure it for a static address.

The next step varies depending on the network. If you’re doing this for a home network running on a common residential router, it’s likely that the values for netmask should be the same (255.255.255.0). However, the other values could be slightly different, but hopefully you are aware of what they are if you are configuring any network settings in your home. For me, the network used the address range of 192.168.0.0 to 192.168.0.255 (including the network and broadcast addresses). The gateway address is almost always the first address in the network and assigned to the router itself, which for me is 192.168.0.1. I chose to assign the address of 192.168.0.100 to the Ubuntu server (similar to most other examples). Lastly, I included the values for the dns-nameservers since we will not be able to get them from the /etc/resolv.conf location after the network service has been restarted with our changes.

# The primary network interface
auto eth0
iface eth0 inet static
	address 192.168.0.100
	netmask 255.255.255.0
	gateway 192.168.0.1
	network 192.168.0.0
	broadcast 192.168.0.255
	dns-nameservers 0.0.0.0 1.1.1.1 2.2.2.2

You should replace with the values you see in my example on the line for dns-nameservers with those you recorded from your /etc/resolv.conf configuration. Each entry for the dns-nameservers should be separated by a space as shown. Do not create a new line with dns-nameservers <address> for each entry or else the network service will not accept it.

After doing this, you can simply restart the network service to apply the new settings, which apparently must be done as root – gives permission errors for me when trying to do it using sudo.

/etc/init.d/networking restart

Once this is done, you can check the active network settings to make sure the server is using the new address for the interface.

ifconfig

If everything looks good now, you should restart the server – place sudo in front of the command if not executing as root.

reboot

After the server has rebooted, test that the nameserver configuration did work and you can resolve outside addresses by pinging an address such as Google.

ping www.google.com

If you do not get an error, everything should be good to go. 🙂