配置cabal上传以使用本地hackage-server

iam*_*nat 6 haskell cabal hackage

我安装了一个本地hackage-server用于开发192.168.1.100:8080.在我开发之后,打包cabal sdist我必须192.168.1.100:8080在我的浏览器上并手动上传包.

这非常繁琐,尤其是在多个包装正在进行等冲刺的情况下,我只是喜欢使用cabal upload.

对于名为my-pacakge.tar.gz的包,运行cabal upload结果为:

Uploading dist/my-package-0.1.1.0.tar.gz...
Error: dist/my-package-0.1.1.0.tar.gz: 404 Not Found
Error: Page not found

Sorry, it's just not here.
Run Code Online (Sandbox Code Playgroud)

我的cabal配置的修改部分如下所示:

...    
remote-repo: hackage.haskell.org:http://hackage.haskell.org/packages/archive
remote-repo: my.hackage:http://192.168.1.100:8080/packages/archive
...
Run Code Online (Sandbox Code Playgroud)

第二行优先考虑本地hackage over hackage.haskell for cabal install

cabal upload该如何设置上传到本地hackage?

scl*_*clv 0

远程仓库应配置为

remote-repo: my-hackage:http://my-hackage.com:8080/

即没有/packages/archive。额外的路径仅作为主服​​务器上的 hack 来匹配旧式路径(hackage 2.0 之前)。

(参见https://github.com/haskell/hackage-server/issues/164