Как вручную установить пакет в рэкет?

Как я могу вручную установить пакет в ракетке (то есть не полагаясь на raco)? Это возможно?

Я установил минимальный дистрибутив рэкета и хочу вручную добавить рассматриваемые пакеты (например, xrepl, который, кажется, не поставляется по умолчанию).

Я на CentOS и у меня нет привилегий root (установка находится в приватном каталоге).


person Nobilis    schedule 27.05.2015    source источник
comment
Будет ли работать raco pkg install --scope user?   -  person Greg Hendershott    schedule 27.05.2015
comment
@GregHendershott В любом случае я получаю call-with-file-lock/timeout: contract violation expected: (>=/c 0.0) given: -1202590842.0, а затем верю в трассировку. Google не очень разбирается в том, что это значит, поэтому я надеялся обойти это, настроив пакет вручную. Все, что я могу предположить, это то, что это что-то отдаленно связанное с протоколом NFS (так как это случалось со мной несколько раз на этапе компиляции).   -  person Nobilis    schedule 27.05.2015
comment
В списке рассылки тоже... что это за версия Racket?   -  person John Clements    schedule 27.05.2015
comment
@JohnClements 6.1.1 минимальный дистрибутив   -  person Nobilis    schedule 27.05.2015


Ответы (1)


Хотя я не уверен, что понимаю проблему с правами доступа, вы можете попробовать raco pkg install --scope user.

В любом случае, вы можете использовать raco pkg install --link <dir> для локальной установки. (Точно так же, как люди, разрабатывающие пакет локально.)

Так, например:

  1. cd ~/src

  2. git clone path/to/foo

    (Или поместите исходный код пакета в ~/src/foo каким-либо другим способом. Под «источником пакета» я подразумеваю, что info.rkt должен быть в ~/src/foo.)

  3. raco pkg install --link foo

Если пакет foo имеет какие-либо зависимости, то raco pkg install также предложит их получить и установить. Обычно это было бы удобно. Но поскольку у вас проблемы с подключением или разрешениями, я полагаю, вы захотите ответить «Нет». Вместо этого выполните эту ручную установку для каждого из отложений, а затем повторите попытку. (Очевидно, что если есть много зависимостей, это неудобно, что является одним из преимуществ использования менеджера пакетов, когда вы можете это сделать.)

person Greg Hendershott    schedule 27.05.2015
comment
Спасибо, я продолжаю сталкиваться с этой проблемой, не могу понять, связано ли это с разрешениями или с NFS, но я уверен, что это все равно пригодится, если / когда я обойду это. - person Nobilis; 27.05.2015
comment
Если вы спросите об этом на groups.google.com/forum/#!forum/ racket-users один из разработчиков Racket может помочь. Некоторые также на #racket IRC. - person Greg Hendershott; 27.05.2015
comment
Кстати, на шаге 3 вы можете просто сделать raco link <dir> && raco setup <dir>. Это связывает и создает коллекцию без каких-либо системных вещей. Но вам нужно будет выяснить все недостающие deps самостоятельно. - person Greg Hendershott; 27.05.2015
comment
Я не могу сделать ничего, что связано с raco pkg install, даже ввод только raco pkg install приводит к указанной ошибке, что очень расстраивает :/ - person Nobilis; 27.05.2015