最近用 Visual Studio 写代码,经常卡在从 msdl.microsoft.com 下 PDB。

于是我维护了一份符号代理:pdb_proxy。上游走微软符号服务器,命中过的文件留在本地,下一次直接从缓存出。

仓库:

https://github.com/luodaoyi/pdb_proxy

当前 Latest Release 是 v1.1.0

我这边对外的节点只有这个:

https://msdl.011f.com

使用方法

Linux 跑仓库里的 install.sh

1
curl -o- https://raw.githubusercontent.com/luodaoyi/pdb_proxy/master/install.sh | bash

卸载:

1
curl -o- https://raw.githubusercontent.com/luodaoyi/pdb_proxy/master/uninstall.sh | bash

脚本会拉最新 Release 里对应架构的 linux-amd64 / linux-arm64 包,装成 systemd 服务 pdb-proxy,开机自启,默认监听 9000,缓存目录 /opt/pdb

1
2
3
systemctl start pdb-proxy
systemctl stop pdb-proxy
systemctl restart pdb-proxy

缓存多久

环境变量 PDB_CACHE_TTL(配置项 pdb_cache_ttl),Go duration,例如 1h30m24h

  • 默认 1h
  • 设成 0 就是永久缓存

装的时候可以直接带:

1
PDB_CACHE_TTL=24h bash install.sh

Docker 用仓库根目录那份 docker-compose.yml。永久缓存:

1
PDB_CACHE_TTL=0 docker compose up -d

Compose 里默认同样是 1h,上游是微软符号服务器,端口 9000:9000,缓存卷 ./pdb:/opt/pdb。过期后会回源刷新;回源失败时继续用手里这份已经过期的缓存。

链接

评论