Folks, this is how it’s done.
Oracle may not be our favorite company, but this is one thing you will not want to miss: Oracle’s Virtual Box VM. It’s free.
You will need to install the
kernel-devel package and all the dependencies. You’ll also need the
dkms from EPEL, so be sure to enable that respository. What
dkms does is allow kernel modules to follow updates to newer kernels.
Download the correct version of Virtual Box; it will list CentOS 7 with a link to the RPM. You’ll need your root credentials to install using Yum on the CLI. What happens is that the package builds itself on your machine and creates several kernel modules. It will take a good long while as the system is quite busy in the background.
I got errors from SELinux about attempts by ldconfig to write to some directory. You’ll have them show up in little GUI popups and on the console after it’s installed you’ll see this:
Trying to register the VirtualBox kernel modules using DKMSldconfig: Can't create temporary cache file /etc/ld.so.cache~: Permission denied ldconfig exited ungracefully ldconfig: Can't create temporary cache file /etc/ld.so.cache~: Permission denied ldconfig exited ungracefully ldconfig: Can't create temporary cache file /etc/ld.so.cache~: Permission denied ldconfig exited ungracefully
So far as I can tell, it has no effect on the outcomes, so just be aware that this represents how strongly SELinux protects you from unwanted changes to your system.
Also notice the message about adding your user account to the
vboxusers group. While still logged in as root, simply edit the file
/etc/group. Scroll down to the last item on the list, which should be
vboxusers and simply add your user account name at the end of the line.
Launch from the main menu: System > Oracle VM Virtual Box. Upon first running the thing you’ll discover this is a very intelligent tool and much easier to use than Qemu.
You create the machine first and get it running before you install. I didn’t think 192MB was enough RAM for Windows XP. Depending on your system, you may not be able to give your VM multiple cores on the CPU. If you can’t, you’ll get errors about not having AMD-V enabled in the BIOS. My Win8 laptop was like that. However, I was able to link the machine to my own home folders right from the start; I selected the automount option and browsed to a Projects folder where I need to use MS Office. You really need to take your time and explore the various options in this manager window.
The display is considerably less laggy than Qemu. Once you install the Guest Additions, it becomes even less so. You can fix a lot of niggling issues like display, making your VM respond automatically to window resizing and such. Under the VM menu, see “Devices” and select the last item at the bottom to automatically mount the virtual ISO image and get those extra drivers so that everything can be smooth and unified in use.
A very handy feature is the row of icons across the lower right side of the window when the VM is running. You can connect and disconnect from the host USB, CD/DVD drives, etc. with ease. From the menu, you can elect to connect or disconnect things like the network connection. So you can, for example, keep your vulnerable XP VM from the Internet.
It’s pretty easy to export your VMs and reimport them on other machines running Virtual Box.
Install a Windows VM on CentOS/RHEL 7 using QEMU — this is the hard way.
VMware won’t build properly on CentOS 7 and all of the suggest fixes failed. The simplest answer is using the included virtual machine, QEMU.
See this quickstart guide first. Sadly, they don’t tell you to install libvirt:
yum install libvirt
Then, turn on the libvirt service:
systemctl enable libvirtd.service
systemctl start libvirtd.service
It still won’t run properly, so reboot!
Whatever OS you wish to install, extract an ISO image from CD/DVD. This way you won’t have to fight permissions. This is true of everything you want to use with your VM. There are various ways to pull off the CD/DVD into an ISO.
Sine I’m running KDE, it’s simplest to use K3B. Select the option to copy your CD/DVD and on the “Options” tab, check the box for “Only create image.” Also, click the “Image” tab because you may want to move the image from the default location up in the
/tmp/ directory. Click the folder icon button and select someplace like your home folder.
When you open the Qemu manager (in the main menu under “System > Virtual Machine Manager”) you’ll be prompted for root credentials. It won’t run in user mode.
I didn’t have much luck installing XP; it kept hanging and entering a race condition. Win2K worked fine for this experiment.
Click the button for a new machine. Give it a name like “win2k”. Select to install from “Local install media” then on the next tab choose “ISO image” and navigate to where you had K3B save it. Select OS type and version. I had to tell Qemu to show me all the options for Windows before it listed “Windows 2000″.
The defaults for RAM and CPU are okay, but you can double the CPU if your machine actually has two or more cores and you think you’ll need it. The defaults for storage are probably fine unless you know you need a big storage space.
The rest is a matter of having installed Windows a time or two. There may be some errors flash on the screen at times, but unless they persist, they don’t mean anything. Play with the settings; I found the Cirrus display gave me a lot more screen real estate.
Qemu is downright cranky and sometimes cryptic. I had to manually tell it to add a USB passthrough option so I could connect a jump drive to the VM. Unlike other VMs, Qemu will not make it easy to link the VM to your host file system. You’d have to run a file server (Samba for Windows VMs) and connect through the virtual network link. Worst of all, it takes lots of system resources to run any 32-bit VM and it’s quite laggy, so if you intend to use it a lot, you’ll have to be ready for that. I don’t recommend Qemu for Windows VMs.
CentOS 7 comes with the ERS (Extended Release Support) version of Mozilla software. This is typical of the basic concept behind RHEL/CentOS and other clones, that you probably only have to install the OS once in the lifetime of the hardware. It will be supported in some fashion for a very long time, so if it runs okay when you first install it, chances are you are done with that.
For example, a default install gives you Firefox 24.x, which is the current ERS version. If you want to install Thunderbird from the standard repositories, you’ll get the same thing. For now, Seamonkey is not available from the repositories I know about. Should you decide you really want the newest version, you’ll need to be careful to find the latest in 64-bit. The typical route through the Mozilla.org websites will not get you there easily. In fact, 64-bit Thunderbird is hidden completely. It’s there, but not easily found.
The proper route is simply start from the FTP folders in the first place: go here. From that starting point, you can drill down into each of the various folders until you find what you seek. For example, the latest and greatest 64-bit Thunderbird as of this posting date is in this folder. Notice where that takes you and observe how it is structured. It’s similar for the other Mozilla projects. You may not want the various releases with lower case letters like “b” as they are beta software.
Once you download what you seek, you’ll find a big, fat b-zipped tar file. Decompress it unwrap it. I do it the old way from the CLI:
tar -xvf thunderbird-31.0.tar
I like to watch stuff one step at a time, but if you want to know the shortcuts, you can try other hints you find by searching on the Net or in the manpages (i.e.,
You’ll end up with a “thunderbird” folder wherever you performed this operation. Simply move that over into your basic “home” folder. Since I’m using the KDE4 desktop on CentOS 7, I need only right-click on the desktop and chase the context menu listings to create a link to application. Change the name to something meaningful to you, say “Thunderbird” and then on the “Application” tab go down to the “command” line and click “Browse”. The window that opens will allow you to select your own home folder (tagged by your username), then you can drop down into the “thunderbird” folder and find the only file there simply named “thunderbird”. Click that and create the desktop link. The icon will be generic, but for some reason you can’t change that until the thing exists. Right-click on this icon and select “Properties” and you’ll get a slightly different window with that generic icon prominently displayed. Click that and select “Other icons” and “Browse”. Chase back down through the “thunderbird” folder this way:
thunderbird/chrome/icons/default/ and select the largest one there. Finish up and you now have your latest and greatest version installed in your own home folder.
The advantage here is updating. You don’t need root credentials to update an executable in your own files. While the application is open, click in the menu line “Help” and select “About Thunderbird” and it will open a smaller window and check for updates. If it needs to update, it should download for you the update of the exact same 64-bit version and tell you to restart once it’s finished. Thus be it ever from now on, we hope.
If you chose to do this with Seamonkey, it’s pretty much the same deal. However, for Firefox we have a complication, because there is already a Firefox installed by default. You either have to log in as root and remove it, or teach them to coexist and run side-by-side. That’s not easy with stuff from Mozilla. They like to use the same profile by default and argue about which version of your add-ons will work. On top of that, even with two profiles, the one already running will simply respawn a new instance of the same version. It’s tricky. We’ll fix this by using the commandline switches that come with Firefox.
First, open any terminal application (I prefer KDE’s Konsole for most things) and launch Firefox there, but with a switch to create a new profile:
This opens a little window that lists what you have — likely “default” — and allows you to create another. Pick a simple name, perhaps your system username, and create a new profile. Now, decide which one will use which version of Firefox. Simplicity suggests you would leave default for the ERS version and your new profile for the latest version of Firefox. Now, right-click on your main menu button on the panel and select “Edit Applications”. You’ll find a window with the menu system outlined. Find and open the item for launching the pre-installed version of Firefox (under “Internet”). Find the “command” and change it to something like this:
firefox -P default -new-instance %u
What we do here is add some switches. The “-P” means use a particular profile, followed by the name — “default” in this case. The “-new-instance” tells Firefox not to connect this launch with any already running Firefox instance. That “%u” is used by KDE in case you have Firefox set as your default browser. When you create the launcher for your newly installed Firefox running from your home folder, use a similar command for that launcher, but change the profile name to whatever you created for that.
If you run Windows, you can find some really great advice from Black Viper about which services you need or don’t need and under what circumstances. Scroll down and check the page links he has. For quite some years his has been the most reliable voice on such matters.
So far, I haven’t found anything equivalent for RHEL/CentOS 7. You can learn about how to check and turn on/off and enable/disable them on this page but there is nothing us mere mortals can read to discern what we need and what we don’t for our home or SOHO desktop use.
In this new release, RHEL has designed lots of things differently. Used to there would be a lot of services you just didn’t need and could easily turn them off using a GUI tool. That tool is gone, but so is the long list of services to kill. It’s pretty simple these days:
In each case I run both the commands for stopping and for disabling. I suppose you realize that if you are doing this on a machine where you plan to connect Bluetooth devices, you leave that one alone. That
rpcbind is for NFS file server systems, and
ssh is for use by technicians who need to log in remotely. That’s also a security risk for those of us who aren’t running these machines remotely, but right in front of us with a keyboard and all that stuff.
Please note that if you aren’t at all using my trick for connecting to a Windows machine that is sharing your home Internet connection, you also don’t need
nfs-lock. If you need to run a Samba client, then you need nfs-lock. So far as I can tell, just about everything else in that list is pretty important to keep running.
CentOS is a lot smarter than you might expect. It knows when it is connected to a home router. The new firewall quickly adjusts and generally does the right thing.
However, it won’t automatically allow you to link to the other computers on your home network. It’s defensive by nature and pretty tight. Once you tell the firewall things are okay for this or that, it will relax just a bit.
Let’s say that you have at least one other computer on your home network running Windows. This is not about Windows, so you’ll have to research how, but your Winbox can share files and any peripherals attached to it with your CentOS 7 machine (start by reading this for XP/Vist and this for Win7). The nickname for the protocol Linux uses to talk to Windows is called “Samba” which is taken from the abbreviation SMB (server message block). By default, it’s likely your CentOS machine is running a Samba client. It simply needs permission from the firewall to use it on the home network.
In your main menu, find the system administration tool for the firewall. It will demand your root credentials. The window that will open is pretty complicated, but we only need to worry about one thing: In the window pane on the left, select “home” — it’s the zone of operations CentOS knows comes from home networking traffic. In the window pane on the right, scroll down to find “samba-client” and select that box. The firewall immediately opens that channel for traffic only inside the router network.
Now test it by opening your file browser window. Look for something that indicates the Network connections and click that. Find the icon for Samba shares. Click and it should offer you a list of the Windows networks. By default, Windows computers will be set up to use “workgroup” as the name for this. Click that icon and you should find a list of Windows computers within that default workgroup. If you attempt to connect to any Windows “host” listed there with whatever name you gave it when you set it up (like “winbox”), you’ll need a name and password for any of the accounts on that machine. You can have your file browser window remember the password so you can log on at will. Once logged in, you can browse the file system as if it were your own on CentOS.
I’m not going to detail here the chase to find printer drivers for Linux; it’s pretty complicated. CentOS 7 comes with most of those available. You can find more at this page. Also, note that several major printer manufacturers have begun offering their own special Linux drivers, so do your own research. So let’s assume for now you know you have a Linux driver for a printer connected to your Winbox.
When you run the printer setup tool on CentOS, one of the options is a network printer using Samba (SMB). Click that option and fill in the information as required for your Windows Samba share. This assumes you’ve set up things on your Winbox to share and have given the printer share a simple name — I used “winprint.” Thus, it was a simple matter of
smb://winbox/winprint for me. Then I chose the appropriate driver and set it up using the tool on CentOS. I was able to print a test page in just a couple of minutes.
The key was simply getting the firewall to open up for the samba client.
This is simply my own recommendation. In order to run CentOS 7 on the desktop, most folks want stuff you can’t get from CentOS directly.
For example, most of us still use websites that require Flashplayer. Adobe has set up a Yum repository that updates as it should with anything related to Red Hat. Using your CentOS box and your favorite browser, go here. The webpage should detect you’ll be running 64-bit and offer a button with a drop-down — select the YUM version and download. It’s an RPM you can install as root. Run “yum update” and you can then elect to install Flashplayer.
For almost everything else you would use on the desktop, I recommend you add the EPEL and Nux repositories. The quickest and easiest path is go here and read the short explanation. The Nux provider links back to the EPEL release as a prerequisite and puts it all in a simple single CLI copy-n-paste command for you:
However, I prefer to download the linked release packages and install from Yum. These release packages will install the repo references to Yum, so run “yum update” again and you are ready. For example, one of the biggest things is adding the necessary packages to run a wider range of multimedia using the default Dragon player on the KDE4 desktop. It uses GStreamer as the backend, so all we need is the rest of the GStreamer plugins:
yum install gstreamer-ffmpeg gstreamer-plugins-bad-nonfree gstreamer-plugins-ugly
You can peruse the list of goodies on Nux and EPEL to see what else you might want. I note that EPEL is still considered a beta repo because they are still working on the packages and the collection itself. That should all update for you automatically once they feel it’s ready. I’m quite certain they’ll add the matching 32-bit packages after CentOS makes that version ready for CentOS 7. However, it’s highly unlikely you’ll need to mix the two architectures unless you just have to run something like Wine to enable running Windows apps.
In other words, using Nux and EPEL on CentOS 7 64-bit just about covers everything you are likely to need and it’s virtually hassle-free. Kudos to EPEL and Nux for the hard work to make us comfortable.
As a side note, building your own stuff from SRPMs requires keeping track of how RHEL/CentOS draws from both FC18 and FC19. I noticed that almost everything KDE is from FC18. I was able to build Bibletime, GKrellM, Xscreensaver (KDE’s screensavers seem perpetually broken in all versions), PySolFC and everything necessary to build them that wasn’t already available from CentOS. It can be time consuming, but you learn an awful lot when chasing the prerequisites through RPMbuild. Please note that you should check the Fedora Updates repository for both FC18 and FC19 as well as the “Everything” list.
So you either built it from SRPMs or simply got the necessary libraries and got the source. Either way, you’ve got PySolFC on your CentOS/RHEL 7 machine and it won’t work. If you try to launch it from the CLI, here’s the error:
Traceback (most recent call last): File "pysol.py", line 26, in init() File "/home/ed/src/PySolFC-2.0/pysollib/init.py", line 120, in init root = Tkinter.Tk(className=settings.TITLE) File "/usr/lib64/python2.7/lib-tk/Tkinter.py", line 1745, in __init__ self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use) _tkinter.TclError: unknown color name "BACKGROUND"
I fought with this for hours and no one wants to answer the question as to what causes this. Finally, I discerned it’s a problem with no defaults for Tk interface elements. The color “BACKGROUND” is defined in the default theme. Most Linux distros work this out for you through various system scripts and settings. It’s not included in the packages you can get or build on CentOS 7. The answer is to create a dot-file in your home directory:
.Xdefaults. You’ll need one line in it:
Save the file and run this command:
xrdb -load .Xdefaults
Try again to launch PySolFC. It should work now. Remember that you’ll have to reload that on every login.