Установка GHC без Root

#haskell #installation #ghc

#haskell #установка #ghc

Вопрос:

Итак, я хотел бы настроить Linux-машину для разработки на Haskell с одной огромной оговоркой — на этой машине нет привилегий root. Мы могли бы, конечно, в конечном итоге заставить администраторов установить GHC для нас. Однако в долгосрочной перспективе нам нужно будет обращаться к ним, когда мы хотим обновить и т.д. Намного лучше делать все в пользовательской среде. Это также означает, что мы захотим установить библиотеки c, на которые мы ссылаемся, также в пользовательской среде и т.д. чтобы все было как можно более простым.

Итак, вопрос в том, как бы я, от сковороды до орехов, мог выполнить установку GHC исключительно для пользователя? На компьютере будет установлен gcc и обычный набор инструментов. При необходимости мы можем начать с обычной установки ghc, чтобы запустить процесс, но было бы неплохо этого не делать.

Кроме того, были бы оценены любые советы по управлению подобной средой, особенно касающиеся того, как такой настройкой можно управлять с помощью нескольких разработчиков / учетных записей.

Ответ №1:

Я тоже это делал. Я создал каталог ~/usr и передал --prefix=$HOME/usr всем скриптам настройки. Использование платформы Haskell делает этот процесс еще более плавным.

Ответ №2:

Очевидно, что вам нужен каталог, для которого все соответствующие пользователи имеют по крайней мере разрешение на чтение. Скажем, /home/foo, с подкаталогами bin, lib, share, .cabal. Затем ./configure --prefix=/home/foo и выполните установку amp;amp; make, и убедитесь, что /home/foo/* находится перед /usr / * в пути каждого пользователя, LIBRARY_PATH и т.д. Вероятно, вам следует начать с установки gcc и c-библиотек там, и когда все C установлено, установите ghc.

Комментарии:

1. В частности, вам потребуется установить двоичный дистрибутив ghc из haskell.org/ghc/download_ghc_7_2_1#binaries , поскольку вам нужен ghc для начальной загрузки самокомпиляции.

Ответ №3:

Мне удалось установить ghc через stack, следуя этим инструкциям. Это сработало как по волшебству; единственная дополнительная вещь, которую мне пришлось сделать, это установить библиотеку GMP и добавить ее в LD_LIBRARY_PATH .

Комментарии:

1. Вы уверены, что в какой-то момент для этого не требовались права root? Все стандартные способы установки Stack работают, AFAIK.

2. У меня нет прав root для компьютера, на котором я это установил, так что да, я уверен 🙂 Инструкции, на которые я ссылался, просто загружают двоичную версию stack, а затем stack просто загружает GHC и GHCI и помещает их в свой каталог ~ /.stack .

3. @leftaroundabout, связанные инструкции выглядят так, как будто они устанавливают Stack в пользовательский каталог.

4. Ого-го! Как это удивительно! Кто-нибудь, свяжите меня, пока я не разбил суперкомпьютер моего университета программами Haskell, которые я не должен там запускать…

Ответ №4:

Если вы хотите использовать stack для установки ghc или ghci , следуйте этому официальному руководству:

  1. загрузите tar.gz файл по ссылке на выпуск ( curl / wget / even scp может загрузить ваш локальный файл на удаленный сервер)
  2. извлеките файл с помощью tar xvzf и введите тест папки, если ./stack выполняется правильно
  3. Добавить
 export PATH="<stack_path>:$PATH"
  

Для ~/.bashrc

Каждый раз, когда вы запускаете терминал, выполняйте source ~/.bashrc

  1. установите ghci локально
 stack ghci
  

Он установится ghci автоматически и запустит его.