Skip to content

Faster and more stable stack builds using the remote caches

Chris Kees edited this page Jan 11, 2017 · 10 revisions

By default, HashDist builds the packages in the stack from source using a standard location of the package (e.g. the package's "download" URL). On any given day, it's likely that at least one website will be down, so it's convenient to have a backup source of packages, which HashDist supports. Additionally, the version of HashDist we use in Proteus supports relocatable binaries, which means you can configure HashDist to retrieve pre-built packages from remote caches. The following remote caches are currently available (note: you can't browse these mirrors, HashDist can only retrieve existing packages from them)

Test that your network can reach the mirrors:

Try getting this package:

$ wget https://dl.dropboxusercontent.com/u/26353144/hashdist_src/src/packs/tar.gz/zvsshm3k3qluzqinksyrspvwe22cnbqj

You should get something like this:

--2017-01-11 09:34:42--  https://dl.dropboxusercontent.com/u/26353144/hashdist_src/src/packs/tar.gz/zvsshm3k3qluzqinksyrspvwe22cnbqj
Resolving dl.dropboxusercontent.com (dl.dropboxusercontent.com)... 45.58.75.133
Connecting to dl.dropboxusercontent.com (dl.dropboxusercontent.com)|45.58.75.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 234332 (229K) [application/octet-stream]
Saving to: ‘zvsshm3k3qluzqinksyrspvwe22cnbqj’

zvsshm3k3qluzqinksy 100%[===================>] 228.84K  --.-KB/s    in 0.1s    

2017-01-11 09:34:43 (1.76 MB/s) - ‘zvsshm3k3qluzqinksyrspvwe22cnbqj’ saved [234332/234332]

Sources

You can use the source cache on any system, regardless of OS. The command to add it to your .hashdist/config.yaml is

hit remote add https://dl.dropboxusercontent.com/u/26353144/hashdist_src --objects="source"

Binaries

To use these build caches, check which version of Linux you have:

lsb_release -a

If a cache exists for your OS, then add the remote:

hit remote add https://dl.dropboxusercontent.com/u/26353144/hashdist_ubuntu_16_10 --objects="build"

If a cache doesn't exist for your OS, post it on the proteus slack channel.

If the hit remote add commands don't work, you can just modify your ${HOME}/.hashdist/config.yaml to add these remote mirrors. For example, on Ubuntu 16.10 your config.yaml might include the following sections:

build_stores:
 - dir: ./bld
 - url: https://dl.dropboxusercontent.com/u/26353144/hashdist_ubuntu_16_10/bld
source_caches:
 - dir: ./src
 - url: https://dl.dropboxusercontent.com/u/26353144/hashdist_src/src

Adding a remote cache

The sections above describe

Clone this wiki locally