Как установить программу для root

Установил новую версию Go с помощью распаковки архива в каталог usr/local. Перед этим методом тыка пытался удалить действующую версию (1.15). В итоге удалил все папки с "go". Теперь go 19 версии работает нормально, но только из под user, а из под sudo "go" не находится. Как и в какую папку необходимо устанавливать Go, чтобы можно было использовать "go" из под sudo.

$ go version
go version go1.19.4 linux/amd64

$ sudo go version
sudo: go: command not found

Если я правильно понимаю, то "go" из под user работает, потому что я установил Go в usr/local (то есть usr/local отвечает за утилиты именно моего пользователя?), но как тогда устанавливать, чтобы утилита работала в sudo (и из user)?


Ответы (2 шт):

Автор решения: APSYHEA

Можно установить в /bin. А вообще как выше написали, используйте пакетный менеджер.

→ Ссылка
Автор решения: hedgehogues

Для того чтобы использовать Go из под sudo, вам нужно установить его в одну из системных директорий, например, в /usr/local/go. Это указывает на то, что Go является общедоступной утилитой для всех пользователей системы.

Чтобы установить Go в системную директорию, выполните следующие шаги:

  1. Скачайте архив с последней версией Go с сайта https://golang.org/dl/.
  2. Распакуйте архив в нужную директорию. Например, в /usr/local/go:

sudo tar -C /usr/local -xzf go$VERSION.$OS-$ARCH.tar.gz

Здесь $VERSION - это нужная вам версия Go, $OS - это название операционной системы (например, linux), $ARCH - это архитектура процессора (например, amd64).

  1. Добавьте путь к инсталляции Go в переменную окружения $PATH. Например, отредактируйте файл /etc/environment и добавьте туда строку:

PATH="/usr/local/go/bin:$PATH"

После этого вы можете использовать go из командной строки в любом месте и из под sudo.

Обратите внимание, что в этом случае пакеты, устанавливаемые с помощью go get, будут устанавливаться в директорию /usr/local/go/src и доступны для всех пользователей системы.

Если вы хотите устанавливать Go и его пакеты только для своего пользователя, то можете устанавливать Go в директорию, доступную только для вас, например, в $HOME/go. В этом случае вам нужно будет добавить путь к инсталляции Go в переменную окружения $PATH вашего пользователя, а не в /etc/environment. Это можно сделать, добавив следующую строку в файл .bashrc вашего пользователя:

export PATH=$HOME/go/bin:$PATH

После этого вы сможете устанавливать пакеты с помощью go get в указанную директорию.

Я надеюсь, что это помогло вам решить вашу проблему. Если у вас остались вопросы, не стесняйтесь спрашивать.

→ Ссылка