Установите Elixir Ленг на Linux Mint

Двуличность 0.6 + попытается возобновить ранее прерывать/приводить к сбою/частичное резервное копирование (источник). rsync опции не помогут, поскольку двуличность шифрует каждый tardiff файл как его, это создало и удаляет, они еще не передали файлы при отказе.

rsync опции позволят этому возобновлять передачу, если никакое шифрование не будет использоваться.

7
30.10.2014, 02:01
3 ответа

Focussing on a):

Выполнение команды

foo=$(echo bar)

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

Команда явно запускает субоболочку так просто, как это.
И это не изменится, если вы его вложите.


Теперь, после вопроса «Почему оболочка делает это», ответ:
Почему вы спрашиваете об этом?

Это интересная тема, но я не до конца вижу, на что вы нацелены;
Некоторые дикие догадки:

  • Предлагаете оптимизировать реализацию bash?
  • Уменьшение количества вилок? По причинам производительности? По каким-то эстетическим причинам? Это самый быстрый способ обеспечить отдельную среду, включая адресное пространство - процесс.
  • Изменить синтаксис оболочки? Чтобы достичь какой именно цели?

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



От man bash

COMMAND EXECUTION ENVIRONMENT
       [ ... ]

       Command substitution, commands grouped with  parentheses,  and  asyn‐
       chronous  commands  are  invoked  in a subshell environment that is a
       duplicate of the shell environment, except that traps caught  by  the
       shell  are reset to the values that the shell inherited from its par‐
       ent at invocation.  Builtin commands that are invoked as  part  of  a
       pipeline  are  also executed in a subshell environment.  Changes made
       to the subshell environment cannot affect the shell's execution envi‐
       ronment.

       [ ... ]
-121--123234-

Для этого есть несколько потенциальных причин.

1) Вы сказали ему удалять только каталоги ( -type d ), и в этих каталогах все еще есть файлы.

2) Каталоги содержат только другие каталоги, поэтому -тип d займется проблемой содержимого. Однако вы используете OS-X, которая в основном основана на FreeBSD, и FreeBSD find по умолчанию будет обрабатывать каталог перед его содержимым.
Однако для решения этой проблемы существует параметр -depth , указывающий найти для обработки каталога после его содержимого.

find ~ -name __pycache__ -type d -ls -delete -depth

Эта проблема не существует в linux, поскольку опция -delete неявно включает -depth .

FreeBSD man 1 найти :

  -depth Всегда верно; аналогично опции non-portable -d. Причина поиска для
сначала выполните обход глубины, т.е. каталоги посещаются в
после заказа и все записи в каталоге будут обрабатываться до
сам каталог. По умолчанию поиск посещаемых каталогов в
предзаказ, т.е. перед их содержанием. Обратите внимание, что значение по умолчанию не
ширина - первый проход.

GNU man 1 find :

  - обработка содержимого каждого каталога перед самим каталогом. Параметр -delete
действие также подразумевает -depth.
-121--14140-

Как вы могли догадаться, пакет elixir недоступен ни в чем, кроме Ubuntu 12,04, Ubuntu 14,04 (и, вероятно, позже) и Debian 7. Вы можете проверить список пакетов для Saucy, и вы заметите, что пакет отсутствует. Доверительный репозиторий имеет его:

Package: elixir
Version: 0.13.3-1
Architecture: all
Maintainer: Erlang Solutions <packages@erlang-solutions.com>
Installed-Size: 3291
Depends: erlang-base (>= 1:17.0) | erlang-base-hipe (>= 1:17.0) | esl-erlang (>= 1:17.0)
Section: contrib
Priority: optional
Homepage: http://elixir-lang.org
Filename: pool/elixir_0.13.3-1~ubuntu~trusty_amd64.deb

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

3
27.01.2020, 20:14

Я тоже пробовал из документации Elixir; сначала я потерпел неудачу, затем, в конце концов, успешно установил эликсир на моем MintDebian1 (Debian wheezy).

Я действительно не знаю, что происходит. Я склонен думать, что в их документации допущена опечатка и они написали apt-get install elixir вместо erlang , потому что во всех других сообщениях в блогах, которые я обнаружил, используется тот же .deb установите erlang , а затем установите эликсир вручную.

Я зашел в /etc/apt/sources.list.d/erlang-solutions.list , изменил squeeze на wheezy , запустил apt-get update и, наконец, я нашел эликсир , и все в порядке.

PS: можно не устанавливать Elixir, но продолжать его запускать, а также реплику iex из образа Docker. См. https://registry.hub.docker.com/u/nifty/elixir/

16
27.01.2020, 20:14

У меня была такая же проблема, и моя система - Ubuntu 14.04, то есть одна из систем, которую якобы поддерживает ссылка для установки Elixir в вопросе.

Установленный мной esl-erlang (согласно ссылке на Elixir выше) не работал с предварительно скомпилированным двоичным файлом Elixir, который я загрузил с github.Поэтому я удалил эту установку erlang ( sudo apt-get purge esl-erlang ) и перешел на веб-страницу установки Erlang , на которой также есть вкладка для Elixir.

Сначала я выполнил альтернативные инструкции Erlang OTP; Я добавил соответствующую строку в свой /etc/apt/sources.list , а затем вручную добавил открытый ключ. Наконец, после запуска sudo apt-get update я успешно установил и esl-erlang, и elixir.

Я успешно использую iex .

1
27.01.2020, 20:14

Теги

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