# Installation

## Requirements

In order to successfully use the most recent &krusader;, you need &kde;libs >= 3.3.x.

Required &kde; version:

- &krusader; v1.01 needs &kde;libs 2.x.x

- &krusader; v1.02 - 1.40 needs &kde;libs 3.x.x

- &krusader; 1.40 prefers >= 3.2.x (otherwise not all features will be available)

- &krusader; v1.50 - 1.60.0 needs >= 3.3.x

Platforms:

- All POSIX (&Linux;/BSD/&UNIX;-like OSes), &Solaris;

- All BSD Platforms (&freebsd;/NetBSD/OpenBSD/&MacOS; 10.3 "Panther").

&krusader; uses about 3-4 MByte of memory to run (and about 15 Mbyte shared memory which is also used by other processes), but this may vary depending on your platform and configuration. In order to handle archives the archivers must be configured here.

A package of popular (un)packers, &krusader; itself and addons can be found on the &krudownload_url;.

For more requirements, continue to read this chapter and read also the &faq_lnk; section.

## How to obtain &krusader;

The latest information about &krusader; can be found on the &kruwebsite_url; and &krusader; project page at Sourceforge can be found &kruproject_url;.

### Download &krusader;

The latest version can be found on the &krudownload_url; and on the &sfmirrors_url;. It contains the source tarballs and RPM packages to whatever distro we are currently using.

- Often &Mandrake;, &fedora; and &SuSE; RPM's and &debian; DEB's are available on our website, sended in by &krusader; users. There might be some other packages, but that depends on users contributions.

- &debian_download_url; &deb_packages_url; are available.

- A &krufreebsd_port_url; is maintained by Heiner Eichmann .

- There is a &mac_download_url; port with the kdelibs (3.1.4) and &fink_prj_url; thanks to Jonas Baëhr .

- &gentoo_url; Ebuild is available.

- You may also find packages on &Linux; software archives such as &freshmeat_url; or &kde_apps_url;.

- If you can't find an RPM package for your &Linux; distribution, we recommend searching for it with &rpmfind_url; or &rpmpbone_url;.

If you like &krusader; go to one of these sites and rate &krusader;, thanks.

If you still can't find an RPM or DEB package, please don't worry. We provide a very detailed installation procedure. This very thorough HowTo shows even newcomers how to compile &krusader; from source, even if you've never compiled a program from source. Please continue to read this chapter ;)

### Version scheme

We use a new version scheme since &krusader;-1.60.0

- First digit - the major version

- Second digit(s) - percentage of features completed for this major version

- third digit(s) - bugfixes.

So in essence, releasing &krusader;-1.60.0, means that we believe that &krusader; is about 60% done with all the features we'd schedule for the 1.x.x series. Only 40% left to go until version 2.0.0 ;-) We hope it'd be easy to understand.

### Stable version

`krusader-x.xx.tar.gz`

&krusader; is released under the &gpl_lnk;, this means that THE PROGRAM IS PROVIDED "AS IS" WITH NO WARRANTY OF ANY KIND, even when it is marked as a stable release.

### Development version (beta release)

`krusader-x.xx-betax.tar.gz`

Before every stable release we release at least one development version, so that we can hunt down the bugs.

These releases are beta releases and will probably contain some bugs.

&dev_cvs_note;

The beta release has 3 goals:

- Apply a feature-freeze until the stable is released, only bugs will be fixed. New features have to wait until the stable is released.

- Obtain feedback from &krusader; users so that we can fix the bugs.

- Give translators the time to update the translations, for the coming stable. Please read the &i18nhowto_url;

### CVS builds

`krusader-cvs-yyyymmdd.tar.gz`

These builds are untested and come without any warranty. They may contain bugfixes, new features or new bugs!

We provide daily snapshots of &krusader;'s CVS version. For those who are interested, the nightly tarball can be found on the &krucutedge_url;. Depending on the stage of development, this version will either be stable or unstable. Just before a stable release, the CVS version is almost stable. After a stable release new features will be committed into CVS, which might lead to the appearance of bugs. In some rare cases, the build will even not compile if we make a mistake, in that case we try to fix the mistake as soon as possible.

&krusader; provides 2 nightly snapshots:

1. `krusader-cvs-yyyymmdd.tar.gz`: `make -f Makefile.cvs` must be run before the `./configure` script is available

2. `krusader-cvs2-yyyymmdd.tar.gz`: for users who have problems with the `make -f Makefile.cvs` command, we have already done this for you and the `./configure` script is included in the tarball (This tarball is a bit bigger then the first one).

Checkout from CVS. &krusader; can be checked out through anonymous (pserver) CVS with the following instruction set. The module you wish to check out must be specified as the modulename. When prompted for a password for anonymous, simply press the &Enter; key.

Currently, there are two module options:

- krusader_kde2: the KDE2 branch, stable but it's basically v1.01 and there are no planned changes

- krusader_kde3: the KDE3 branch, that we currently use

To checkout &krusader; from CVS:

    $ cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/krusader login

    $ cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/krusader co krusader_kde3

(note: updates from within the modules directory do not need the -d parameter)

If you want to checkout a specific version of &krusader; from CVS (&eg; &krusader;-1.50) :

    $ cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/krusader co -rversion_1_50 krusader_kde3

If you want to checkout a specific date of &krusader; from CVS (&eg; &krusader;-2004-10-23) :

    $ cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/krusader co -D2004-10-23 krusader_kde3

Mostly being &gentoo_url; users, we provide a &gentoo_life_ebuild_url; for all those who want to stay on the bleeding edge of filemanagement and don't want to miss the advantages of portage. Please take a look at our &krucutedge_url; for more installation details.

We also provide &viewcvs_url; to browse the CVS repository.

### Older releases

Looking for older releases? Try the &sfmirrors_url; available from our project page.

## Compilation and installation

### I have downloaded the sources for &krusader;. What now?

Check the environment variables &kdeqtdir_lnk;.

In order to compile and install &krusader; on your system, type the following in the base directory of the &krusader; package:

    $ ./configure
    $ make
    $ su -c 'make install'

&krusaderui_rc_text;

Since &krusader; uses `autoconf` and `automake` you should have no trouble compiling it. Should you run into problems please read the detailed installation instructions below.

### Installation Tutorial

The next section will explain step by step, in detail, how to install &krusader;. This question has been asked many times and especially users new to &Linux; often have problems compiling software from source. Therefore, we are trying to keep the explanations as detailed as possible even if they are mostly not &krusader; specific. Experienced users may easily skip most of the steps.

If you encounter problems, please read first this installation procedure and the &faq_lnk;, if this does not solve your problem then feel free to ask for help with an &help_request_lnk;.

If you install &kdevelop; then (almost) everything that you need to compile &krusader; will be installed on your computer, BUT please don't use &kdevelop; to compile &krusader; if you are not a developer (possible automake hell), just follow the next instructions.

1. Install all needed packages and libraries that you need for the compilation, please read the &faq_lnk;.

2. Open your favourite terminal emulator (&eg; &konsole;).

3. We recommend you create a separate directory to keep all the sources you compile in. This will give you a better overview of installed programs and makes it easier to uninstall them later.

       $ mkdir ~/source

   The chosen directory is just an example, any other will work.

4. Copy the sources to the `~/source` directory and unpack them.

       $ cp /"your_dir"/krusader-x.xx.tar.gz ~/source

       $ cd ~/source

       $ tar -xzvf krusader-x.xx.tar.gz

5. Optional step: the tarball is no longer needed at this point, you can delete it if you want.

       $ rm  krusader-x.xx.tar.gz

6. Change to the directory containing the sources.

       $ cd  krusader-x.xx

7. Check the environment variables `QTDIR` and `KDEDIR`. &krusader;'s `./configure` script needs to know where the &Qt; and &kde; directories are.

   `QTDIR` : <path to your Qt installation> &eg; `/usr/lib/qt3` or `/usr/qt3`

   `KDEDIR` : <path to your KDE installation> &eg; `/usr` or `/opt/kde3`

   Normally your distribution will set them for you, but experience has shown that some don't. You can easily check the values with the `echo` command.

       $ echo $QTDIR
       /usr/lib/qt3
       $ echo $KDEDIR
       /usr

   If both commands give an output, the enviroment variables are set (the above example are the settings of &Mandrake;-&Linux;). In case you just receive empty lines, the variables are not set and you have to set them it manually. If you have no idea what to set the variables to, or if you want to check if the variables are correctly set, ask your distributor or use the `find` command.

       $ find /usr /opt -name qtconfig -type f -perm +111
       /usr/lib/qt3/bin/qtconfig
       $ find  /usr /opt -name startkde -type f -perm +111
       /usr/bin/startkde

   In this case `/usr/lib/qt3` is your `QTDIR` and `/usr` is your `KDEDIR`. The installed binaries will go to `/usr/bin`. Now we will set the enviroment variables with the `export` command.

       $ export QTDIR=<replace with your QTDIR>

       $ export KDEDIR=<replace with your KDEDIR>

   These enviroment variables are only set for the lifetime of your current shell. When you close your terminal and open a new one they will be gone. Assuming &krusader; is not the only &Qt;/&kde; program you want to compile, we recommend to make these settings permanent (&eg; append both export commands to your `/etc/profile`) file.

8. If you have downloaded a stable version `"krusader-x.xx.tar.gz"` or a beta version `"krusader-x.xx-betax.tar.gz"`, you can skip this step, in this case the `./configure` script is provided.

   If you have downloaded a CVS build or nightly tarball `"krusader-cvs-yyyy-mm-dd.tar.gz"`", you will have to run the following command to create the `./configure` script:

       $ make -f  Makefile.cvs

   If everything is OK you will see the following output on your screen:

       $ make -f  Makefile.cvs
       This Makefile is only for the CVS repository
       This will be deleted before making the distribution
       *** Creating acinclude.m4
       *** Creating list of subdirectories
       *** Creating configure.in
       *** Creating aclocal.m4
       *** Creating configure
       *** Creating config.h template
       *** Creating Makefile templates
       *** Postprocessing Makefile templates
       *** Creating date/time stamp
       *** Finished
       Don't forget to run ./configure
       If you haven't done so in a while, run ./configure --help
       $

   You will need to have: autoconf 2.52, 2.53 or 2.54 and automake 1.6 (or higher) to run the `make -f Makefile.cvs` command

   If you encounter problems with this command click here. &krusader; provides 2 nightly builds (snapshots) one with a `./configure` script and one without.

9. Now you are ready to run the `./configure` script.

       $ ./configure

   This will take about 1 minute, if everything goes well it will &eg; end with the following messages:

       foo

       Krusader Project:
       -----------------
       Source code location: .
       C Compiler:           gcc
       C Compiler flags:     -ansi -W -Wall -pedantic -Wchar-subscripts -Wshadow -Wpointer-arith
       -Wmissing-prototypes -Wwrite-strings -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -O2
       -Wformat-security -Wmissing-format-attribute
       C++ Compiler:         g++
       prefix:               /usr
       kde_libraries:        /usr/include
       kde_includes:         /usr/lib
       kde_locale:           /usr/share/locale
       qt_libraries:         /usr/lib/qt3/lib
       qt_includes:          /usr/lib/qt3/include
       KDEDIR:               /usr
       QTDIR:                /usr/lib/qt3
       Install path:         /usr/bin
       krusader version:     1.51
       krusader binary:      /usr/bin/krusader     (after 'make install')
       Thank you for using Krusader

       Good - your configure finished. Start make now
       bash$

   This is the output for &Mandrake;-&Linux; 10, other distributions may give a different output.

   At the end of the `./configure` script you will find a summary of the most important settings, &eg; where the &krusader; binary will be installed (after the 'make install' command).

   Usually the &krusader; binary will be installed in the `KDEDIR/bin` directory. If you would prefer to install &krusader; in a different directory, you can do this with the following command: ``./configure` `--prefix=/usr/local``. In this case the &krusader; binary will be installed in the `/usr/local/bin` directory.

   &SuSE; needs: ``./configure` `--prefix=/opt/kde3``.

   This part will also display a warning if the environment variables &kdeqtdir_lnk; are empty.

   Use ``./configure` `--help`` to see more options or read the `INSTALL` file in the &krusader; sources.

   If `./configure` fails, take a look at &missing_libs_lnk;.

10. Start the compilation process with the `make` command.

        $ make

    This will take about 10 to 40 minutes, if everything goes well it will &eg; end with the following messages:

        foo
        make[2]: Leaving directory `/foo/krusader-cvs-YYYY-MM-DD/krArc'
        make[2]: Entering directory `/foo/krusader-cvs-YYYY-MM-DD'
        make[2]: Nothing to be done for `all-am'.
        make[2]: Leaving directory `/foo/krusader-cvs-YYYY-MM-DD'
        make[1]: Leaving directory `/foo/krusader-cvs-YYYY-MM-DD'
        bash$

    If `./configure` was successful and `make` failed for some reason, continue to read this page. If you can't find any solution for your problem then feel free to post a help request at our &forum_lnk;.

11. If nothing went wrong, you can now install &krusader;.

        $ su -c 'make install'

    You will be asked to enter your root password.

12. &krusaderui_rc_text;

13. Now you can start &krusader;.

14. Optional step: if you want you can clean up to save some diskspace. Note: in this case all the compiled files created with the `make` command will be deleted.

        $ make clean

15. If you ever want to uninstall &krusader;, just use

        $ su -c 'make uninstall'

    You will be asked to enter your root password.

If you encounter problems with installing &krusader; please read first the &faq_lnk;. If this installation procedure and the FAQ does not solve the problem, feel free to ask for help with an &help_request_lnk;.

## Starting &krusader;

Type ``krusader`` (lower case) at a command prompt. You can create shortcut on your desktop or create an entry in the (&kde;) menu. Read the previous page and the &faq_lnk; if &krusader; doesn't start.

When &krusader; is started from the command-line, various options can be specified to modify its behavior.

    $ krusader
    WARNING: Mt.Man: Born, looking around to get familiar.
    foo

Don't worry about the messages you get in the &konsole;. These messages are log messages that can be used for debugging &krusader;.

You can also use &Alt;F2 to open the Run Command dialog box, type ``krusader`` (lower case) and press &Enter; or click on the "Run" button.

If &krusader; is installed by an RPM or DEB package then usually &krusader; can be started from the &kmenu;. &eg; on &Mandrake;-&Linux; 10.0 click on the &kicon; button and choose ApplicationsFile tools &krusader;.

`--left` <path> start left panel at <path>

`--right` <path> start right panel at <path>

`--profile` <panel-profile> Load panel-profile <panel-profile> on startup

Examples:

    $ krusader --left=/mnt/cdrom --right=ftp://downloads@myserver.net

    $ krusader --profile ftp-managment

The standard &Qt; and &kde; command-line options are available, and can be listed by entering ``krusader` `--help`` .

### Other command-line options:

`--help-qt`

  List Qt-specific options

`--help-kde`

  List KDE-specific options

`--help-all`

  List all options

`--author`

  Show the authors names

`-v,--version`

  Show the version number

`--license`

  Show license information

## Configure &krusader;

When you run &krusader; for the first time the &krusader; configuration module Konfigurator will show up and allow you to configure &krusader; as well as detect installed packers and tools. You can always run Konfigurator again from the &settingsmenu_lnk;.

# Configuration files

This appendix gives an overview of the configuration files used by &krusader;.

krusaderui.rc

This file stores the users toolbar settings and the menu structure. Tip: please read also the krusaderui.rc &FAQ;.

Location: `$KDEDIR/share/apps/krusader/krusaderui.rc` or `~/.kde/share/apps/krusader/krusaderui.rc`

krusaderrc

This file stores the &krusader; configuration.

Location: `~/.kde/share/config/krusaderrc`

The following settings are stored:

- Advanced

- Archives

- Dependencies

- General

- HTML Settings

- KFileDialog

- KFileDialog Speedbar

- KrDetailedViewLeft

- KrDetailedViewRight

- KrViewerWindow

- KrViewerWindow Toolbar mainToolBar

- Locate

- Look&Feel

- Open-with settings

- Private

- Protocols

- RemoteMan

- Search

- Startup

- Synchronize

- SynchronizerProfile - 1

krbookmarks.xml

This file stores the &krusader; bookmarks and uses the &xbel_url; standard.

Location: `~/.kde/share/apps/krusader/krbookmarks.xml`

useractions.xml

This file stores the &useractions_lnk; configuration. The file-structure is documented in doxygen-headers of UserActionXML.

Location: `~/.kde/share/apps/krusader/useractions.xml`

foo.keymap

Is a binary file that holds a Key-binding profile.

Location: `$KDEDIR/share/apps/krusader/foo.keymap`

foo.color

Is a binary file that holds the Color Scheme.

Location: `$KDEDIR/share/apps/krusader/foo.color`

# useraction.xml

This appendix gives several examples of `useraction.xml` files. With this you can begin to discover the power of the &useractions_lnk; and start learning how to use them. If you have made a useful user action please post it in the &useractionsforum_url;, we are collecting UserActions on our website and are planning to ship &krusader; with several great UserActions in the near future. Once you understand how to write UserActions you will find that &krusader; is an even more powerful, customizable tool.

- Runs `uptime`

      <!DOCTYPE KrusaderUserActions>
       <KrusaderUserActions>
        <action name="uptime" >
        <title>Up-time</title>
        <tooltip>tells how long since the computer has been booted</tooltip>
        <icon>clock</icon>
        <category>information</category>
        <description same_as="tooltip" />
        <command executionmode="collect_output" >uptime</command>
        <defaultshortcut>Alt+Ctrl+U</defaultshortcut>
       </action>
      </KrusaderUserActions>

- Runs `ls -l`

      <!DOCTYPE KrusaderUserActions>
       <KrusaderUserActions>
        <action name="ls -l" >
        <title>ls -l in curremt dir</title>
        <description same_as="tooltip" />
        <command executionmode="collect_output" >ls -l %aPath% %oPath%</command>
       </action>
      </KrusaderUserActions>

- Echo Placeholder

      <!DOCTYPE KrusaderUserActions>
       <KrusaderUserActions>
        <action name="test_placeholder" >
        <title>Echo Placeholder</title>
        <tooltip>Echo's the placeholder values</tooltip>
        <category>Testing</category>
        <description same_as="tooltip" />
        <command executionmode="collect_output" onmultiplefiles="call_each" >echo -e "aPath %aPath()%  \naCurrent: %aCurrent()%"</command>
       </action>
      </KrusaderUserActions>

- This useraction copies current path and filename to clipboard:

      <!DOCTYPE KrusaderUserActions>
      <KrusaderUserActions>
       <action name="clipboard current" >
        <title>Copy to Clipboard</title>
        <tooltip>Copy to clipboard</tooltip>
        <icon>klipper</icon>
        <category>System</category>
        <description>Copy current path and filename to clipboard</description>
        <command>%_Clipboard("%aCurrent%")%</command>
        <defaultshortcut>Win+C</defaultshortcut>
       </action>
      </KrusaderUserActions>

- Selects `.diff` and `*.h` in the active panel:

      <!DOCTYPE KrusaderUserActions>
      <KrusaderUserActions>
       <action name="test_select" >
        <title>Add selection *.diff and *.h</title>
        <category>Selection</category>
        <command>%aSelect("*.diff", "add")% %aSelect("*.h", "add")%</command>
       </action>
      </KrusaderUserActions>

- Active panel changes to `mnt/floppy` (bookmark):

      <!DOCTYPE KrusaderUserActions>
      <action name="mnt/floppy bookmark" >
        <title>Jump to /mnt/floppy</title>
        <category>Bookmarks</category>
        <command>%aGoto("/mnt/floppy", "yes")%</command>
       </action>
      </KrusaderUserActions>

- Select in the non-active panel, all filenames that are highlighted in the active panel:

      <!DOCTYPE KrusaderUserActions>
       <action name="asdfasdf" >
        <title>Select in Other Panel</title>
        <category>Selection</category>
        <description>Select all filenames that are selected in the active panel, also in the non-active panel</description>
        <command>%oSelect("%aList("selected", " ", "Yes")%")%</command>
       </action>
      </KrusaderUserActions

- Make a backup of the current file/folder to `foo.bak` into the current directory:

      <!DOCTYPE KrusaderUserActions>
      <KrusaderUserActions>
       <action name="backup current" >
        <title>Backup in Current Directory</title>
        <tooltip>Backup in current directory</tooltip>
        <icon>filesaveas</icon>
        <category>System</category>
        <description same_as="tooltip" />
        <command>%_Copy("%aCurrent%", "%_Ask("new name", "%aCurrent%.bak")")%</command>
        <defaultshortcut>Shift+F5</defaultshortcut>
       </action>
      </KrusaderUserActions>

- Opens KruSearcher:

      <!DOCTYPE KrusaderUserActions>
      <KrusaderUserActions>
       <action name="search" >
        <title>Search Test</title>
        <command>%_NewSearch("Search 2")%</command>
       </action>
      </KrusaderUserActions>

- Sets the selected picture as wallpaper:

      <!DOCTYPE KrusaderUserActions>
      <KrusaderUserActions>
       <action name="set wallpaper" >
        <title>Set as Wallpaper</title>
        <tooltip>Set as wallpaper</tooltip>
        <icon>image</icon>
        <category>Service Menu</category>
        <description>Set as wallpaper (scaled)</description>
        <command>dcop kdesktop KBackgroundIface setWallpaper "%aCurrent%" 6</command>
        <defaultshortcut>Win+W</defaultshortcut>
       </action>
      </KrusaderUserActions>

- This useraction edits a file with root permissions using `kdesu`:

      <!DOCTYPE KrusaderUserActions>
      <KrusaderUserActions>
       <action name="edit as root" >
        <title>Edit as Root</title>
        <tooltip>Edit as root</tooltip>
        <icon>kwrite</icon>
        <category>System</category>
        <description>Edit a file with root permissions using kdesu</description>
        <command>kdesu kedit %aCurrent%</command>
        <defaultshortcut>Win+F4</defaultshortcut>
       </action>
      </KrusaderUserActions>

- This useraction Add item(s) to Amarok playlist:

      <!DOCTYPE KrusaderUserActions>
      <KrusaderUserActions>
       <action name="amarok enqueue" >
        <title>Enqueue in Amarok</title>
        <tooltip>Append selected item(s) to Amarok playlist</tooltip>
        <icon>amarok</icon>
        <category>Multimedia</category>
        <description same_as="tooltip" />
        <command>amarok --append %aList("Selected")%</command>
        <defaultshortcut>Win+A</defaultshortcut>
       </action>
      </KrusaderUserActions>

- Opens KruSyncDir:

      <!DOCTYPE KrusaderUserActions>
      <KrusaderUserActions>
       <action name="synchronizer" >
        <title>Synchronizer</title>
        <command>%_Sync("Sync 2")%</command>
       </action>
      </KrusaderUserActions>