Ракетка: обмен скриптами / библиотеками с другим пользователем в той же системе
У меня есть сценарий, который я написал в Racket несколько лет назад, и я хотел бы поделиться с коллегой, который использует мою рабочую станцию Linux, но с другой домашней папкой. Я могу запустить его из своей учетной записи, но когда я вызываю скрипт из своей учетной записи, они получают сообщение об ошибке:
/home/me/racket/script:10:9: collection not found
for module path: mylibrary
collection: "mylibrary"
in collection directories:
/home/colleague/.racket/6.4/collects
/share/apps/racket/racket-6.4/share/racket/collects
... [155 additional linked and package directories]
context...:
show-collection-err
standard-module-name-resolver
Поскольку она, похоже, искала только мою библиотеку в каталоге коллег, я подумал, что смогу исправить ее, добавив следующий код в сценарий, чтобы они использовали мой путь к коллекции перед тем, как требовать модули.
(current-library-collection-paths
(list "/home/me/.racket/6.4/collects"
"/share/apps/racket/racket-6.4/share/racket/collects"))
Я понял эту идею, прочитав: https://docs.racket-lang.org/reference/collects.html. Из этого источника, похоже, я мог бы также установить PLTCOLLECTS
переменная окружения, чтобы иметь тот же эффект.
Хотя я все еще был в состоянии запустить сценарий, он все еще не работал для моего коллеги. Эта процедура, очевидно, не сделала то, что я думал, что сделал.
Как я могу сделать то, что я планировал - как я могу позволить им запустить скрипт, повторно используя мою среду Racket?
Я установил их глобально:
raco pkg install - установка области - mypackage.zip