Невозможно запустить или переустановить Quicklisp: ASDF / FIND-SYSTEM :: STAMP undefined

Я сломал среду CL. Я могу запустить sbcl, но не могу повторно запустить или переустановить Quicklisp (я просто удалил каталог ~/quicklisp/ и хотел бы начать все заново). Я получаю следующую ошибку:

* (load #p"~/quicklisp/setup.lisp")
While evaluating the form starting at line 129, column 0
  of #P"~/quicklisp/setup.lisp":

debugger invoked on a UNDEFINED-FUNCTION in thread
#<THREAD "main thread" RUNNING {10019B67B3}>:
  The function ASDF/FIND-SYSTEM::STAMP<= is undefined.

строка 129 не представляет большого интереса, или так кажется.

То же самое при переустановке Quicklisp.

ASDF версии 3.2.1, SBCL 1.3.19.

Что может быть причиной этого?

Или как я могу полностью и правильно начать все заново? (думая о скрытых файлах .fasl или что-то в этом роде).

Спасибо !

изменить: он загружает asdf 2.26

* (quicklisp-quickstart:install)

; Fetching #<URL "http://beta.quicklisp.org/client/quicklisp.sexp">
; 0.82KB
==================================================
838 bytes in 0.00 seconds (818.36KB/sec)
; Fetching #<URL "http://beta.quicklisp.org/client/2017-03-06/quicklisp.tar">
; 250.00KB
==================================================
256,000 bytes in 0.09 seconds (2941.18KB/sec)
; Fetching #<URL "http://beta.quicklisp.org/client/2015-09-24/setup.lisp">
; 4.94KB
==================================================
5,054 bytes in 0.00 seconds (0.00KB/sec)
; Fetching #<URL "http://beta.quicklisp.org/asdf/2.26/asdf.lisp">
; 194.07KB
==================================================
198,729 bytes in 0.08 seconds (2553.57KB/sec)While evaluating the form starting at line 129, column 0
  of #P"/home/vince/quicklisp/setup.lisp":

debugger invoked on a UNDEFINED-FUNCTION in thread
#<THREAD "main thread" RUNNING {10019B68B3}>:
  The function ASDF/FIND-SYSTEM::STAMP<= is undefined.

person Ehvince    schedule 03.01.2018    source источник
comment
Вы устанавливали quicklisp с помощью apt? Если да, то, возможно, вы захотите попробовать использовать: sudo apt-get purge --auto-remove cl-quicklisp. (источник: installion.co.uk/ubuntu / яркий / вселенная / c / cl-quicklisp / uninstall /)   -  person pdoherty926    schedule 04.01.2018
comment
На первый взгляд кажется, что это несовместимая версия ASDF. SBCL приносит свой, установлен ли другой?   -  person Svante    schedule 04.01.2018
comment
@ pdoherty926 Я не использовал --auto-remove (для cl-quicklisp и slime), но это то же самое. @Svante Добавил трассировку, quicklisp-quickstart:install качает ASDF 2.26, это нормально? В sbcl я вижу, что у меня ASDF 3.2.1. Не знаю, откуда это: D   -  person Ehvince    schedule 04.01.2018


Ответы (1)


Наконец-то получил его благодаря красивому предупреждающему сообщению ASDF при попытке установить утилиту roswell:

Установить скрипт для sbcl-bin ... ВНИМАНИЕ: вы используете ASDF версии 3.3.1 (возможно, из (требуется "asdf") или загружается с помощью quicklisp), и у вас есть более старая версия ASDF 3.2.1, зарегистрированная в #P "/ home /vince/bacasable/portacle/build/asdf/asdf.asd ". Установка и регистрация ASDF - это нормальный способ настройки ASDF для обновления самого себя, а регистрация старой версии - ошибка конфигурации. ASDF проигнорирует эту настроенную систему, а не снизит ее до предыдущей версии. В будущем вы можете захотеть либо: (a) обновить этот настроенный ASDF до более новой версии, (b) установить более новый ASDF и зарегистрировать его перед первым в вашей конфигурации, или (c) удалить или отменить регистрацию и любая другая старая версия ASDF из вашей конфигурации. Обратите внимание, что более старый ASDF может быть зарегистрирован неявно через конфигурацию, унаследованную от вашей системной установки, и в этом случае вам, возможно, придется указать: ignore-inherited-configuration в вашем файле ~ / .config / common-lisp / source-registry.conf или другой файл конфигурации исходного реестра, переменная среды или параметр lisp. В самом деле, вероятным нарушителем является устаревшая версия пакета cl-asdf debian или ubuntu, которую вы, возможно, захотите обновить (если доступна достаточно свежая версия) или вообще удалить (поскольку большинство реализаций поставляются с последней версией asdf); если у вас нет прав системного администратора для обновления или удаления этого пакета, тогда вы действительно можете либо установить и зарегистрировать более свежую версию, либо использовать: ignore-inherited-configuration, чтобы избежать регистрации старой. Пожалуйста, обратитесь к документации ASDF и / или к экспертам.

Так произошло из-за сборки Portacle, которую я удалил, и теперь все в порядке. ~~ Я не знаю, почему это мешало мне, хотя ~~ У меня было слишком широкое значение (pushnew "~/bacasable/" asdf:*central-registry* :test #'equal) в моем .sbclrc (но, похоже, у меня была закомментирована pb с этой строкой…).

Итак, поиск решения: попробуйте установить утилиту roswell (ros install sbcl-bin), посмотрите, где у вас есть файлы asdf.lisp (с locate), и следуйте предупреждениям ASDF.

Спасибо ASDF за приятное предупреждение!

person Ehvince    schedule 07.01.2018