How To Upgrade BOINC On Mandriva Linux
WHAT IS THIS WEB PAGE ABOUT?
If you are interested in upgrading BOINC to the latest stable version to make use of added features and improvements, then this web page shows you how you can upgrade without having to re-install BOINC. The steps shown are appropriate for Mandriva, but many steps shown here can be done on other linux distributions.
If you are installing BOINC using a package manager such as RPM, apt-get, yum, or another manager which comes with your linux distribution, you may wish to use that method instead of this How-To since many of the steps shown below are already done for you by your linux distro (The steps shown below are more for your own educational use).
If you prefer to install BOINC manually, under a different user, under a different location, or settings, then these steps allow you to install the latest stable BOINC in an existing location of your own choice, the user you chose, while also allowing you to maintain your current Higher MSEC security settings and also any existing calculations currently in progress without requiring you to do a re-install.
This How-To guide is long, so to keep this guide as short as possible, the following steps here assume you followed the steps in How To Install BOINC On Mandriva Linux and have BOINC running in directory "/opt/BOINC". If you have it located elsewhere, or under your own account, just substitute the appropriate information and locations where necessary.
You may skip or modify some steps shown below to match your existing setup.
SWITCH TO USER BOINC
If you are running BOINC under your own user account, then skip this step about switching to user BOINC.
If you followed recommendations to run BOINC under it's own user account instead of your own account, then the quickest and easiest way to do this is to do all the steps as user BOINC.
Log out of your user account and log into the BOINC user account (skip the steps shown below).
Alternatively, this may be a bit confusing to novice users, but if you are an experienced Linux user, you may understand this and choose to be user BOINC in a Command-line Shell instead (see steps below):
1.
2.
3.
4. | |
[you@genesis ~]$ su boinc
Password: ********
[boinc@genesis you]$ cd ~
Now do what needs to be done as user boinc in boinc's home directory
[boinc@genesis ~]$ exit
[you@genesis ~]$ exit |
|
- su boinc - Change from you to user BOINC.
- cd ~ - Now everything you do inside this command-line shell is done as user BOINC, but first, you should change to your BOINC home directory located at "/home/boinc/". Proceed to do all the other steps shown in this How-To guide as user BOINC within this shell.
- exit - When you finish, exit user BOINC and return to user you.
- exit - If you are done, then this exits the command-line shell.
GO GET THE LATEST BOINC
Open up an Internet web browser and Download the latest stable BOINC file to your "~/DeskTop".
RUN THE SCRIPT TO EXPAND BOINC INTO THE TEMPORARY DIRECTORY
The latest version of BOINC at the time this How-To was originally written was version 5.10.45, the steps appear identical with later versions, and this How-To will use 6.4.5 as the example for the following steps (NOTE: large version changes such as 5 to 6 are best to do as a fresh re-install versus an update. You may want to do further checks along the way at your own discretion if you decide to do an upgrade instead).
In this section, you will create a "~/temp_boinc/" directory to expand the downloaded files into before copying the updated files to your "/opt/BOINC/" directory.
The reason for expanding the files into a temporary directory is so that you can modify permissions (if you run BOINC in a Higher MSEC server security level) and so that you only import the files needed since you do not need to copy all the files.
1.
2.
3.
4.
5.
| |
[boinc@genesis ~]$ mkdir ~/temp_boinc
[boinc@genesis ~]$ cd ~/temp_boinc
[boinc@genesis temp_boinc]$ sh ~/Desktop/boinc_6.4.5_i686-pc-linux-gnu.sh
use /home/boinc/temp_boinc/BOINC/run_manager to start BOINC
[boinc@genesis temp_boinc]$ cd BOINC
[boinc@genesis BOINC]$ ls -l
-rw------- 1 boinc boinc 219 2008-12-09 13:31 binstall.sh
-rwx------ 1 boinc boinc 1758400 2008-12-09 13:31 boinc*
-rwx------ 1 boinc boinc 212328 2008-12-09 13:31 boinccmd*
-rwx------ 1 boinc boinc 6339976 2008-12-06 19:56 boincmgr*
-rw------- 1 boinc boinc 815 2008-11-18 13:51 boincmgr.16x16.png
-rw------- 1 boinc boinc 2395 2008-11-18 13:51 boincmgr.32x32.png
-rw------- 1 boinc boinc 5570 2008-11-18 13:51 boincmgr.48x48.png
-rw------- 1 boinc boinc 238100 2008-11-18 13:51 ca-bundle.crt
-rwx------ 1 boinc boinc 282652 2008-11-18 13:51 libcudart.so*
drwx------ 38 boinc boinc 4096 2008-11-18 13:51 locale/
-rwx------ 1 boinc boinc 53 2008-12-30 01:08 run_client*
-rwxr----- 1 boinc boinc 56 2008-12-30 01:08 run_manager*
[boinc@genesis BOINC]$ |
|
- mkdir ~/temp_boinc - You will need to create a temporary directory to expand the script so that you can copy the required files for your update (the "~" is BOINC's home directory).
- cd ~/temp_boinc - Change into the temporary director before expanding the script file.
- sh /home/boinc/Desktop/boinc_6.4.5_i686-pc-linux-gnu.sh - Run the boinc script (substitute the name of the version you downloaded if it is not 6.4.5). This will create a directory named "BOINC/" with the files you will need to copy. All these files will be created in the current directory which is "~/temp_boinc" unless you chose another directory.
- cd BOINC - Change into the (temporary) BOINC directory.
- ls -l - This step is optional. List the files you finished expanding (into the "~/temp_boinc/BOINC" directory).
CHANGE PERMISSIONS FOR GROUP ACCESS AND HIGHER MSEC
If you followed the steps in How To Install BOINC On Mandriva Linux then you will want to adjust the permissions to these files before you copy them to your "/opt/BOINC" directory.
You may skip this step if you did not modify permission levels to a Higher MSEC level or if you are running BOINC as yourself from your own user account.
If you decide to do this step, this step may appear optional and unnecessary since files are expected to gain existing permissions of older existing files, however, this is a precaution for setting proper permissions for any new files which do not yet exist on your older version setup.
You may note that later versions of BOINC may already have some desirable permissions already set for you, so some of the steps shown below may also be skipped, for example versions of BOINC such as 6.4.5 have tighter permissions so that only the BOINC user is permitted to run anything (see only the 1st 3 "rwx" are enabled).
1.
2.
3.
4.
5.
6.
7.
| |
[boinc@genesis BOINC]$ chown boinc:boincg -R *
[boinc@genesis BOINC]$ chmod -R g-w,o-rwx *
[boinc@genesis BOINC]$ chmod -R g+r *.png
[boinc@genesis BOINC]$ chmod -R g+r locale*
[boinc@genesis BOINC]$ chmod g+rx boincmgr
[boinc@genesis BOINC]$ chmod g+rx lib*.so
[boinc@genesis BOINC]$ ls -l
-rw------- 1 boinc boincg 219 2008-12-09 13:31 binstall.sh
-rwx------ 1 boinc boincg 1758400 2008-12-09 13:31 boinc*
-rwx------ 1 boinc boincg 212328 2008-12-09 13:31 boinccmd*
-rwxr-x--- 1 boinc boincg 6339976 2008-12-06 19:56 boincmgr*
-rw-r----- 1 boinc boincg 815 2008-11-18 13:51 boincmgr.16x16.png
-rw-r----- 1 boinc boincg 2395 2008-11-18 13:51 boincmgr.32x32.png
-rw-r----- 1 boinc boincg 5570 2008-11-18 13:51 boincmgr.48x48.png
-rw------- 1 boinc boincg 238100 2008-11-18 13:51 ca-bundle.crt
-rwxr-x--- 1 boinc boincg 282652 2008-11-18 13:31 libcudart.so*
drwxr----- 38 boinc boincg 4096 2008-11-18 13:51 locale/
-rwx------ 1 boinc boincg 53 2008-12-30 01:08 run_client*
-rwx------ 1 boinc boincg 56 2008-12-30 01:08 run_manager*
[boinc@genesis BOINC]$ |
|
- chown boinc:boincg -R * - Change the owner to boinc, and the group ownership to boincg for all files and sub directories. Any user that belongs to group boincg can look at these files but cannot modify them.
- chmod -R g-w,o-rwx * - Remove permissions so that group boincg cannot write or edit files, and so that other users have no access to the files at all.
- chmod -R g+r *.png - If you want group access to the BOINC manager then you need to access these "*.png" picture tiles.
- chmod -R g+r locale* - You need access to the appropriate language if you want group access to the BOINC manager.
- chmod g+rx boincmgr - Do this if you want to allow the group to run BOINC manager (You may notice newer versions of BOINC already have this set for you).
- chmod g+rx lib*.so - 1 or more libraries needed by BOINC executable programs.
- ls -l - Take a look at the files now that you have changed permission settings. You are interested in user boinc access to the boinc* executable, and group boincg access to the "boincmgr" and "*.png" files, and the locale directory. All other files are not required for this update.
STOP THE OLD BOINC, COPY OVER, START THE NEW BOINC
After following the steps above, you now have new BOINC binaries which can be overwritten over the old binaries. For existing files, the permissions you changed are not important since they will take the existing permissions. For new files, you will have the permissions already set to match your existing BOINC setup (if you opted for the Higher MSEC level).
First, if you are running the BOINC manager right now. Stop and exit the manager since you will be updating the manager.
Next, if you installed BOINC to automatically run when your computer boots up, you will need to stop the BOINC client daemon. If you are using Mandriva, you will use the service command in super user mode. For linux distros without the service command, you will need to use an alternative method.
Now that BOINC is stopped, copy the new files over the old files. If you want to clean up, you may want to first delete old files before adding the new files. The additional deletion steps are shown below so that you do not accidently delete too much.
Once the new files are in place, you are ready to restart the BOINC client and continue processing. All the required steps are shown below.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
| |
[boinc@genesis BOINC]$ su
Password: ********
[root@genesis BOINC]# service boinc stop
Stopping boinc client daemon: [ OK ]
[root@genesis BOINC]# exit
[boinc@genesis BOINC]$ cp --preserve * /opt/BOINC/
cp: overwrite `/opt/BOINC/binstall.sh'? n
cp: overwrite `/opt/BOINC/boinc'? y
cp: overwrite `/opt/BOINC/boinccmd'? y
cp: overwrite `/opt/BOINC/boincmgr'? y
cp: overwrite `/opt/BOINC/boincmgr.16x16.png'? y
cp: overwrite `/opt/BOINC/boincmgr.32x32.png'? y
cp: overwrite `/opt/BOINC/boincmgr.48x48.png'? y
cp: overwrite `/opt/BOINC/ca-bundle.crt'? y
cp: overwrite `/opt/BOINC/libcudart.so'? y
cp: omitting directory `locale'
cp: overwrite `/opt/BOINC/run_client'? n
cp: overwrite `/opt/BOINC/run_manager'? n
[boinc@genesis BOINC]$ rm -f -R /opt/BOINC/locale
[boinc@genesis BOINC]$ cp --preserve -R locale* /opt/BOINC/
[boinc@genesis BOINC]$ cd ~
[boinc@genesis ~]$ su
Password: ********
[root@genesis boinc]# service boinc start
boinc is not running (no lockfile found). [ OK ]
Starting BOINC service: [ OK ]
[root@genesis boinc]# exit
[boinc@genesis ~]$ |
|
- su - The following command needs to be done in Super User mode. You will need the su password too.
- service boinc stop - Stop the BOINC client daemon. If you are not running Mandriva and do not have the service command, then you will have call the service directly using the full path name /etc/init.d/boinc stop
- exit - Exit. You will want to return to user BOINC to reduce the chance of copying a file with unnecessary super user settings. The files you will copy next should have user BOINC permissions.
- cp --preserve * /opt/BOINC/ - Now you copy the required files to your existing "/opt/BOINC" directory. The default action is for the copy command to ask for permission to overwrite any existing files, in which case, there are some files you do want to copy, and some files you do not want to overwrite.
binstall.sh | no | This script was used for install. Once BOINC is installed, this script is no longer needed. You will NOT want to update this file especially since this updated file script refers to a temporary "~/temp_boinc/BOINC" directory you will remove in a later step below. |
boinc | yes | BOINC core client. This program will be run as a daemon and you do want to update this with this latest version. |
boinccmd | yes | Most users may prefer to use the graphical manager, but this program allows you to set BOINC using the command line, you will want to copy this file since it is an updated program. |
boincmgr | yes | BOINC manager. This program manages the client program, shows stats and is used for choosing projects and you will want to update with this latest version. |
boincmgr.*.png | yes | The graphical BOINC manager will have several picture PNG files. Some remain the same while others may be updated. Copy all PNG picture files. |
ca-bundle.crt | yes | This is a certificate used by BOINC to access the BOINC website(s). This file occassionally gets updated, so it is best to always copy the latest version in case the certificate is updated to a new version. |
libcudart.so | yes | BOINC library. This library is used by the BOINC executable binary programs. |
locale | -- | The options specified in copy did not include directories, so you may note this was skipped. |
run_client | no | A script that cd's into the BOINC directory and runs the core client. You will NOT want to update this file since this updated version refers to the temporary "~/temp_boinc/BOINC" directory. Keep the old file since the old file points to your existing "/opt/BOINC" directory. |
run_manager | no | A script that cd's into the BOINC directory and runs the manager. You will NOT want to update this file since this updated version refers to the temporary "~/temp_boinc/BOINC" directory. Keep the old file since the old file points to your existing "/opt/BOINC" directory. |
- rm -f -R /opt/BOINC/locale - Removing all the locale files will be quicker than asking to copy over every existing file in the next step.
- cp --preserve -R locale* /opt/BOINC/ - Copy all the updated locale language files to your existing "/opt/BOINC/" directory.
- cd ~ - You performed all the steps above from the temporary "~/temp_boinc/BOINC" directory. You should exit from that directory before doing the following steps because that directory will be removed soon.
- su - The following command needs to be done in Super User mode. You will need the su password too.
- service boinc start - Start the BOINC client daemon. If you are not running Mandriva and do not have the service command, then you will have call the service directly using the full path name /etc/init.d/boinc start
- exit - Exit. You no longer need to be in su mode.
CHECK IF THE NEW BOINC WORKS WELL
After you restart the BOINC client daemon in the step above, you may want to look at the new BOINC manager by clicking on the shortcut link on the desktop. If you look in the advanced screens, you may note one of the messages showing a version change, for example this update went okay from 5.10.45 to 6.4.5.
If you want to start the BOINC manager using the command line, you can use the following steps:
1.
2.
3. | |
[boinc@genesis ~]$ cd ~
[boinc@genesis ~]$ ~/Desktop/boinc.sh
connect: Operation now in progress
[boinc@genesis ~]$ exit |
|
- cd ~ - Change the current directory to the BOINC default home directory (if you are not in BOINC's home directory already, this will change you there).
- ~/Desktop/boinc.sh - Run the shortcut link for the BOINC manager in location "/home/boinc/Desktop/boinc.sh".
- exit - Exit. If you are not doing the cleanup steps in the next section below, then exit the command line mode.
CLEANUP THE TEMPORARY DIRECTORIES AND FILES
If BOINC works well now, you may want to cleanup all the miscellaneous files created but no longer needed now.
1.
2.
3.
4. | |
[boinc@genesis ~]$ cd ~
[boinc@genesis ~]$ rm -f -r temp_boinc
[boinc@genesis ~]$ rm Desktop/boinc_6.4.5_i686-pc-linux-gnu.sh
rm: remove regular file `boinc_6.4.5_i686-pc-linux-gnu.sh'? y
[boinc@genesis ~]$ exit |
|
- cd ~ - Change the current directory to the BOINC default home directory.
- rm -f -r temp_boinc - Remove the "temp_boinc" directory and all the files inside. Use caution with your spelling since the "-f" option does not ask you "Are you sure?"
- rm Desktop/boinc_6.4.5_i686-pc-linux-gnu.sh - Remove the latest script you downloaded since you no longer need it now. If the script is a later version than 6.4.5, or has a different name, substitute the appropriate name.
- exit - Exit the command line mode.
You are done.