Для тех из вас, кто не знает, что такое Рыба: http://fishshell.com/
Точно так же, если вы не знакомы со средой кодирования Go и все еще хотите попытаться выяснить эту небольшую головоломку, вот некоторая информация: http://golang.org/doc/code.html
Во всяком случае, поэтому я пытаюсь настроить разработчика Go-lang. окружение на новой машине, где я пробую Fish.
Таким образом, я установил $GOPATH
/home/<me>/workspace/go-workspace
в bash
и fish
. Это означает, что утилита go
ожидает каталог bin
, pkg
и src
. Который там.
Однако ввод go get
в каталоге с некоторым кодом (который обычно загружает его зависимости) дает
package code.google.com/p/go.crypto/openpgp: cannot download, $GOPATH not set. For more details see: go help gopath
package code.google.com/p/go.crypto/openpgp/armor: cannot download, $GOPATH not set. For more details see: go help gopath
package code.google.com/p/go.crypto/ssh: cannot download, $GOPATH not set. For more details see: go help gopath
package github.com/codegangsta/cli: cannot download, $GOPATH not set. For more details see: go help gopath
package github.com/oleiade/reflections: cannot download, $GOPATH not set. For more details see: go help gopath
package launchpad.net/goamz/aws: cannot download, $GOPATH not set. For more details see: go help gopath
package launchpad.net/goamz/s3: cannot download, $GOPATH not set. For more details see: go help gopath
Я знаю, что это абсолютно неверно, потому что я могу запустить echo $GOPATH
и вывести значение, которое я установил.
Затем, как ни странно, если я запускаю ту же команду в bash
с тем же набором $GOPATH
, она просто работает.
Кто-нибудь может сказать мне, почему?
Или, в более общем смысле, вы можете сказать мне, почему программа обнаруживает переменную среды в одной оболочке, а не в другой?