CondaBinDeps.jl

Conda BinDeps provider for Julia
Author JuliaPackaging
Popularity
3 Stars
Updated Last
5 Years Ago
Started In
July 2018

CondaBinDeps.jl

Build Status — OS X and Linux Build status — Windows

This package, which builds on the Conda.jl package allows one to use conda as a BinDeps binary provider for Julia. While other binary providers like Homebrew.jl, AptGet or WinRPM.jl are platform-specific, CondaBinDeps.jl is a cross-platform alternative. It can also be used without administrator rights, in contrast to the current Linux-based providers.

As such, Conda.jl primary audience is Julia packages developers who have a dependency on some native library.

conda is a package manager which started as the binary package manager for the Anaconda Python distribution, but it also provides arbitrary packages. Instead of the full Anaconda distribution, Conda.jl uses the miniconda Python environment, which only includes conda and its dependencies.

CondaBinDeps.jl is NOT an alternative Julia package manager, nor a way to manage Python installations. It will not use any pre-existing Anaconda or Python installation on your machine.

Basic functionality

You can install this package by running Pkg.add("CondaBinDeps") at the Julia prompt. See the Conda.jl package for information on setting up conda environments, etcetera.

BinDeps integration: using Conda.jl as a package author

CondaBinDeps.jl can be used as a Provider for BinDeps with the Conda.Manager type. You first need to write a conda recipe, and upload the corresponding build to binstar. Then, add CondaBinDeps in your REQUIRE file, and add the following to your deps/build.jl file:

using BinDeps
@BinDeps.setup
netcdf = library_dependency("netcdf", aliases = ["libnetcdf" "libnetcdf4"])

...

using CondaBinDeps
provides(CondaBinDeps.Manager, "libnetcdf", netcdf)

If your dependency is available in another channel than the default one, you should register that channel.

CondaBinDeps.Conda.add_channel("my_channel")
provides(CondaBinDeps.Manager, "libnetcdf", netcdf)

If the binary dependency is only available for some OS, give this information to BinDeps:

provides(CondaBinDeps.Manager, "libnetcdf", netcdf, os=:Linux)

To tell BinDeps to install the package to an environment different from the root environment, use EnvManager.

provides(CondaBinDeps.EnvManager{:my_env}, "libnetcdf", netcdf)

Bugs and suggestions

CondaBinDeps has been tested on Linux, OS X, and Windows. It should work on all these platforms.

Please report any bug or suggestion as a github issue

License

The CondaBinDeps.jl package is licensed under the MIT Expat license, and is copyrighted by Guillaume Fraux and contributors.