Obtaining Vifm

From Vifm Wiki
Revision as of 12:51, 9 February 2017 by Xaizek (talk | contribs) (From sources: Specify --sysconfdir=/etc on configuration)
Jump to: navigation, search

*nix like

From sources

Building from sources shouldn't cause any troubles.


  • development version (the one that includes header files) of curses library (most likely ncurses) built as shared library with enabled wide-character support (should be available on most systems). On Debian-based systems package you need is called libncursesw5-dev.

The standard set of command should work just fine:

./configure --sysconfdir=/etc
make install

By default Vifm will be installed under `/usr/local`, if you want to have it in `/usr`, specify `--prefix` parameter:

./configure --prefix=/usr

If you know how to make a package on for your distribution, it's recommended to make one and install it rather than running make install. E.g. on Slackware Linux one could do:

mkdir build
make DESTDIR="$PWD/build" install
cd build
makepkg ../vifm-dev.txz
installpkg ../vifm-dev.txz


Using package managers

See Downloads page for a list (probably incomplete) of Vifm packages in various operating systems.

Note that there is no guarantee that packages are up to date. To use the latest version of Vifm refer to section on building Vifm from sources.



There are no prebuild Cygwin packages for Vifm, so one needs to build it from sources.

The following packages are required:

  • make;
  • gcc-core (it has a lot of dependencies, some of which are required for build);
  • ncurses-devel.

The process is basically the same as building on *nix like operating system from sources . configure script takes care of most of details and normally no additional steps are needed.

Development builds

32-bit and 64-bit vifm.exe executables built on master branch can be downloaded here. Note that this is work in progress, so it might contain newly introduced and not yet resolved bugs (please report them), but it's expected to be quite safe for general use.

Using MXE (on GNU/Linux)

MXE (M cross environment) is a great tool to cross compile Windows applications on GNU/Linux, which is actually much easier than building them on Windows.

dos2unix tool is needed.

Additional patches for pdcurses from patches/pdcurses/ directory of Vifm's source tree should be copied to src/ directory of MXE.

Building x86 version

MXE target name: i686-w64-mingw32.static.

Required MXE packages:

  • binutils
  • gcc
  • libgnurx
  • mingwrt
  • pdcurses
  • pthreads
  • w32api

Build MXE with patches for pdcurses.

To build Vifm, export $CROSS environment variable like this:

export CROSS=$HOME/repos/mxe/usr/bin/i686-w64-mingw32.static-

Then run the following command from root of Vifm's source tree:

make -C src/ -f Makefile.win

Building x86_64 version

MXE target name: x86_64-w64-mingw32.static.

Required MXE packages are as for x86 version.

Build MXE with patches for pdcurses.

To build Vifm, export $CROSS environment variable like this:

export CROSS=$HOME/repos/mxe/usr/bin/x86_64-w64-mingw32.static-

Then run the following command from root of Vifm's source tree:

make -C src/ -f Makefile.win

Cross-compiling with ccache

Override CC like this:

make -C src/ -f Makefile.win CC="ccache ${CROSS}gcc"

Using MinGW

One can get MinGW on their site (this is 32-bit version, go up for 64-bit one).

dos2unix tool is needed, which is probably already available in the package.


Needs to be altered with patches from patches/pdcurses/ directory of Vifm's source tree and rebuilt as shared library like this:

# from root level of pdcurses after applying patches
make -C win32/ -f gccwin32.mak DLL=Y WIDE=Y

GNU regex library

Development version of this library is required. It can be downloaded from SourceForge of MinGW.

Pthreads library

Note: newest MinGW seems to come with their own version of Pthreads, so one might not need this step.

Development files should be downloaded from their site and installed to appropriate directories (include/ and lib/) of MinGW.

Groff binary

This one is required for converting manual pages to plain text format and can be omitted. Package can be found at the official site.


From src/ directory run:

make -f Makefile.win


Using HomeBrew

If you have it installed, installing Vifm is rather easy:

brew install vifm

Using MacPorts

Installing Vifm is very simple as with any other package manager:

sudo port install vifm