Я хотел бы сделать снимок глобальной базы данных Hackage в замороженной, более мелкой для моей компании. Как можно наиболее легко скопировать часть сегмента Hackage на частный сервер?
Как можно сделать частную копию Hackage
Ответ 1
Здесь один script, который делает это как можно проще: https://github.com/jamwt/mirror-hackage
Вы также можете использовать MirrorClient непосредственно из репозитория hackage2: http://code.haskell.org/hackage-server/
Ответ 2
Это не ответ на два вопроса в названии, а ответ на мою интерпретацию того, чего хочет достичь OP.
В зависимости от того, что вы хотите для уровня стабильности в вашем производственном круге, вы можете подойти к проблеме несколькими способами.
Я разделил зависимости на две части, вещи, которые я могу использовать, которые находятся на платформе haskell (сохраняйте каждую используемую в производстве платформу), а затем используйте только небольшое количество пакетов вне этого и не позволяйте никому (включая самостоятельно) добавьте больше пакетов в свое дерево зависимостей только из-за лени (как разработчика). Эти дополнительные пакеты вы используете своего рода script для сбора и сбора из хака (блокировка для версии) с помощью кэбальной выборки. Держите их в безопасности. Создайте установку script, которая использует ваши безопасные пакеты, и если в вашу команду добавлен новый компьютер (разработчик), используйте script.
yackage велик, но все сводится к тому, как вы отправляете свой продукт. Если у вас есть более старые версии в производстве, вам нужно настроить yackage для каждой версии, и через пару лет может быть неприятно раздражать.
Ответ 3
Вы можете скачать Hackage с помощью Voker57 hackage-mirror.sh. Для этого вам понадобится "завиток". Если вы используете дистрибутив Linux на базе Debian, вы можете установить завиток, набрав apt-get install curl.