Originally Posted by
Fossaw
Now, I expect I can find this library on the net, but where should it go, in Windows parlance, which directory should I put it in?
As someone who has always been a Windows user and just switched to Linux (Ubuntu 14.04) less than a year ago as my everyday OS (I still like Windows too, nothing wrong with it), I wanted to add further to what's already been said in an effort to make the paradigms between the two OSes more clear. I had been hindered over the years from switching to Linux because of the difficulty in getting simple explanations for how things work and analogies between Windows and Linux to make the transition smoother. I hope to provide one small such explanation and analogy so that you might not be as dissuaded as I had historically been.
On Windows, when you hear about a program, you google it and download setup.exe or installer.exe or some other such thing. You follow the wizard and everything goes where it should go and gets set up as it should be; the program itself, it's libraries, documentation, etc.
In the world of Linux distributions (vanilla Linux is different), programs are generally installed through "package" management systems. A package is typically the kind of file you see with a .deb or .rpm extension. .deb as in Debian, and .rpm as it RPM Package Manager or RedHat Package Manager. So if you had, for example, codeblocks_13.12-3_amd64.deb, this would be the package that would let you install the Code::Blocks IDE and most of what you need to make it run. In the Windows world, this is almost the same as setup.exe. In a Linux distro, you generally rarely work with the package (.deb file) directly, you use the package management system. So, on Ubuntu, you would do this:
Code:
apt-cache search codeblocks
Which would return a list looking like this:
Code:
codeblocks-common - common files for Code::Blocks IDE
codeblocks-contrib - contrib plugins for Code::Blocks IDE
libpath-dispatcher-perl - flexible and extensible dispatcher module
codeblocks - Code::Blocks integrated development environment (IDE)
codeblocks-contrib-dbg - dummy transitional package for Code::Blocks debugging symbols
codeblocks-dbg - Code::Blocks debugging libraries
codeblocks-dev - Code::Blocks development files (SDK)
libcodeblocks0 - Code::Blocks shared library
Aptitude is the major package management system for Debian based distributions, such as Ubuntu. There are a bunch of utilities used on the command line to do different things with Aptitude instead of using Aptitude directly. apt-cache lets you search the package repository for programs/libraries you are interested in. Running the above command will output a list of packages that relate to Code::Blocks. Each line has the package name and a description of that package.
So if you typed:
Code:
sudo apt-get install codeblocks
it would do everything necessary to get an installed and fully functional Code::Blocks running, which should include any other libraries and things you would need to make it run - things that may be missing from the plain .deb file.
So in Ubuntu (and other distros in general, with their own and different package management systems), that's how you install new programs - you don't go finding them online to download. You use
Code:
apt-cache search [package-name]
to search for programs and libraries, and
Code:
apt-cache policy [package-name]
to see if you already have a package installed, and if so, what version it is, and you use
Code:
apt-get install [package-name]
to install a package. apt-get will usually require you to use sudo.
So in your case, to use boinc, what you would do instead of downloading it from a website, is
Code:
sudo apt-get install boinc
That way, everything you need, including the missing libraries, should be installed.
Of course, you could always use one of the built in GUI based package management systems that come with Ubuntu, but I've always done it from the command line. The GUIs should do the same thing, without all the command line stuff that may annoy you.