Почему команда "go version" завершается с ошибкой? Нет такого файла или каталога

  1. Не существует стека ядра . Для каждого потока существует область памяти, которая используется как пространство стека, когда процесс выполняет системный вызов. Существуют также отдельные «стеки прерываний», по одному на ЦП, которые используются обработчиком прерываний. Эти области памяти находятся в адресном пространстве ядра (выше 0xc0000000на вашем рисунке.

  2. Кадры стека (Кадры времени выполнения C, кадры для основного и т. д. )являются частью стека. Аргументы процесса(argv)и окружение являются отдельными областями и не являются частью стека.

  3. Область между 0x0и0x08048000(около 128 МБ )ни для чего не используется. Первоначально i386 System V ABI зарезервировал эту область для стека, но Linux делает все по-другому. Если оставить область неиспользуемой, не будет потрачено ОЗУ, только адресное пространство, потому что область не отображается. Обратите внимание, что эта информация к настоящему времени почти полностью устарела, так как она описывает, как все делается в 32 -битной архитектуре x86. Сегодня трудно найти 32 --битные машины x86, и дистрибутивы постепенно отказываются от их поддержки.

-2
03.06.2021, 21:10
1 ответ

Во фрагменте, который вы разместили в своем вопросе, говорится:

~$ which go
/usr/local/go/bin/go

whichуказывает, что бинарный файл go находится в каталоге /usr/local/go/bin. (также см. Почему бы не использовать «который»? Что использовать тогда?)но Bash пытается запустить из него каталог /usr/local/bin:

~$ go version
-bash: /usr/local/bin/go: No such file or directory

Вероятно, это место, где goдвоичный файл находился до того, как вы переместили или удалил его. В подобных ситуациях запуск hash -rможет исправить ошибку. проблема, изhelp hash:

-r forget all remembered locations

2
28.07.2021, 11:27

Теги

Похожие вопросы