The following packages are user-contributed and were up-to-date at the time of writing:
- Ubuntu and Debian, x86_64-only (packages also exist in the official repositories but may be out of date)
- Guix (search for “vdirsyncer”)
- OS X (homebrew)
- BSD (pkgsrc)
We only support the latest version of vdirsyncer, which is at the time of this writing 0.17.0a4.dev25+g12efea7.d20180720. Please do not file bugs if you use an older version.
Some distributions have multiple release channels. Debian and Fedora for example have a “stable” release channel that ships an older version of vdirsyncer. Those versions aren’t supported either.
If there is no suitable package for your distribution, you’ll need to install vdirsyncer manually. There is an easy command to copy-and-paste for this as well, but you should be aware of its consequences.
If your distribution doesn’t provide a package for vdirsyncer, you still can use Python’s package manager “pip”. First, you’ll have to check that the following things are installed:
- Python 3.4+ and pip.
- Rust, the programming language, together with
its package manager
- Linux or OS X. Windows is not supported, see issue #535.
On Linux systems, using the distro’s package manager is the best way to do this, for example, using Ubuntu (last tried on Trusty):
sudo apt-get install python3 python3-pip libffi-dev
Rust may need to be installed separately, as the packages in Ubuntu are usually out-of-date. I recommend rustup for that.
Then you have several options. The following text applies for most Python software by the way.
The dirty, easy way¶
The easiest way to install vdirsyncer at this point would be to run:
pip3 install -v --user --ignore-installed vdirsyncer
--useris to install without root rights (into your home directory)
--ignore-installedis to work around Debian’s potentially broken packages (see Requests-related ImportErrors). You can try to omit it if you run into other problems related to certificates, for example.
Your executable is then in
This method has a major flaw though: Pip doesn’t keep track of the files it
installs. Vdirsyncer’s files would be located somewhere in
~/.local/lib/python*, but you can’t possibly know which packages were
installed as dependencies of vdirsyncer and which ones were not, should you
decide to uninstall it. In other words, using pip that way would pollute your
The clean, hard way¶
There is a way to install Python software without scattering stuff across your filesystem: virtualenv. There are a lot of resources on how to use it, the simplest possible way would look something like:
virtualenv --python python3 ~/vdirsyncer_env ~/vdirsyncer_env/bin/pip install -v vdirsyncer alias vdirsyncer="$HOME/vdirsyncer_env/bin/vdirsyncer"
You’ll have to put the last line into your
This method has two advantages:
- It separately installs all Python packages into
~/vdirsyncer_env/, without relying on the system packages. This works around OS- or distro-specific issues.
- You can delete
~/vdirsyncer_env/to uninstall vdirsyncer entirely.
The clean, easy way¶
pipsi is a new package manager for Python-based software that automatically sets up a virtualenv for each program you install. Assuming you have it installed on your operating system, you can do:
pipsi install --python python3 vdirsyncer
.local/bin/vdirsyncer will be your new vdirsyncer installation. To
update vdirsyncer to the latest version:
pipsi upgrade vdirsyncer
If you’re done with vdirsyncer, you can do:
pipsi uninstall vdirsyncer
and vdirsyncer will be uninstalled, including its dependencies.