Как заставить стек использовать прокси только для работы в сети, но не для загрузки хакерских файлов - PullRequest
1 голос
/ 12 июля 2020

Итак, я нахожусь в Китае, и Github здесь не всегда доступен.

Я получаю это при запуске stack install для проекта.

HttpExceptionRequest Request {
  host                 = "raw.githubusercontent.com"
  port                 = 443
  secure               = True
  requestHeaders       = [("User-Agent","The Haskell Stack")]
  path                 = "/fpco/stackage-content/master/stack/stack-setup-2.yaml"
  queryString          = ""
  method               = "GET"
  proxy                = Nothing
  rawBody              = False
  redirectCount        = 10
  responseTimeout      = ResponseTimeoutDefault
  requestVersion       = HTTP/1.1
}
 (InternalException (HostCannotConnect "raw.githubusercontent.com" [Network.Socket.connect: <socket: 15>: does not exist (Connection refused)]))

Я знаю, что могу стек установки с прокси-сервером с использованием http_proxy

$ export http_proxy=IP:PORT
$ stack install

Но это означает, что стек также будет загружать хакерские файлы через прокси, а я использую зеркало tsinghua:

package-indices:
  - download-prefix: http://mirrors.tuna.tsinghua.edu.cn/hackage/
    hackage-security:
        keyids:
        - 0a5c7ea47cd1b15f01f5f51a33adda7e655bc0f0b0615baa8e271f4c3351e21d
        - 1ea9ba32c526d1cc91ab5e5bd364ec5e9e8cb67179a471872f6e26f0ae773d42
        - 280b10153a522681163658cb49f632cde3f38d768b736ddbc901d99a1a772833
        - 2a96b1889dc221c17296fcc2bb34b908ca9734376f0f361660200935916ef201
        - 2c6c3627bd6c982990239487f1abd02e08a02e6cf16edb105a8012d444d870c3
        - 51f0161b906011b52c6613376b1ae937670da69322113a246a09f807c62f6921
        - 772e9f4c7db33d251d5c6e357199c819e569d130857dc225549b40845ff0890d
        - aa315286e6ad281ad61182235533c41e806e5a787e0b6d1e7eef3f09d137d2e9
        - fe331502606802feac15e514d9b9ea83fee8b6ffef71335479a2e68d84adc6b0
        key-threshold: 3 # number of keys required

        # ignore expiration date, see https://github.com/commercialhaskell/stack/pull/4614
        ignore-expiry: no

Это означает, что теперь я получаю доступ к китайскому зеркалу через прокси в Сингапуре, и это очень медленно.

Одно быстрое решение, которое у меня есть, - удалить китайское зеркало и получить все go через прокси. Но я все еще хочу использовать китайское зеркало, если это возможно.

Так что мне интересно, есть ли способ настроить стек для использования прокси только для Network вещей, но не для загрузки хакерских файлов?

...