В эликсире, как мне установить пакеты глобально?

Могу ли я использовать mix для глобальной установки некоторых пакетов? Я бы хотел, чтобы поведение было похоже на глобальную опцию npm или установку gem — это может быть полезно для пакетов, которые я использую везде, таких как csv или yaml.


person Yingce    schedule 05.11.2015    source источник
comment
Возможно, вы захотите взглянуть на это: stackoverflow.com/questions/33358776/   -  person Hécate    schedule 05.11.2015


Ответы (3)


В Эликсире такого нет, вы всегда используете зависимости в контексте проекта. Такие решения, как архивы или эскрипты, предназначены для решения конкретных проблем, они не позволяют обмениваться пакетами между проектами.

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

person José Valim    schedule 06.11.2015
comment
Я понимаю! Спасибо, валимл. - person Yingce; 13.11.2015

Некоторые пакеты предоставляют файл архива, который можно установить глобально.

http://elixir-lang.org/docs/v1.1/mix/Mix.Tasks.Archive.Install.html

Например Феникс:

mix archive.install https://github.com/phoenixframework/phoenix/releases/download/v1.0.3/phoenix_new-1.0.3.ez

Это позволяет получить глобальный доступ к задаче mix phoenix.new. Тем не менее, нет ничего конкретного для разрешения установки библиотек, доступных во всех ваших смешанных проектах.

person Gazler    schedule 05.11.2015
comment
Ссылка на актуальную документацию здесь — hexdocs.pm/mix/Mix.Tasks.Archive.Install .html - person Vadim Shvetsov; 17.12.2019
comment
Да, фреймворк Phoenix — это один из таких архивов, последнюю версию которого можно установить с помощью: mix archive.install hex phx_new. Чтобы просмотреть все ваши глобальные архивы и их версии, вы можете использовать: mix archive. - person zenw0lf; 18.02.2020

Для сценариев Elixir вы можете виртуально установить глобальные пакеты, используя erun. Скомпилировав erun со своими зависимостями, вы можете запустить

$ erun foo.exs

(erun — это просто эпиграф.)

https://github.com/s417-lama/erun

person s417-lama    schedule 04.06.2019