如何在Ubuntu Hardy下的片段中使用(require:PACKAGE)?
时间:2020-03-06 14:29:24 来源:igfitidea点击:
我试图评估此处提供的答案,并收到错误:"使用clisp时,"名称为ASDF-INSTALL的文件不存在""
dsm@localhost:~$ clisp -q [1]> (require :asdf-install) *** - LOAD: A file with name ASDF-INSTALL does not exist The following restarts are available: ABORT :R1 ABORT Break 1 [2]> :r1 [3]> (quit) dsm@localhost:~$
cmucl引发类似的错误:
dsm@localhost:~$ cmucl -q Warning: #<Command Line Switch "q"> is an illegal switch CMU Common Lisp CVS release-19a 19a-release-20040728 + minimal debian patches, running on crap-pile With core: /usr/lib/cmucl/lisp.core Dumped on: Sat, 2008-09-20 20:11:54+02:00 on localhost For support see http://www.cons.org/cmucl/support.html Send bug reports to the debian BTS. or to [email protected] type (help) for help, (quit) to exit, and (demo) to see the demos Loaded subsystems: Python 1.1, target Intel x86 CLOS based on Gerd's PCL 2004/04/14 03:32:47 * (require :asdf-install) Error in function REQUIRE: Don't know how to load ASDF-INSTALL [Condition of type SIMPLE-ERROR] Restarts: 0: [ABORT] Return to Top-Level. Debug (type H for help) (REQUIRE :ASDF-INSTALL NIL) Source: ; File: target:code/module.lisp (ERROR "Don't know how to load ~A" MODULE-NAME) 0] (quit) dsm@localhost:~$
但是sbcl可以完美地工作:
dsm@localhost:~$ sbcl -q This is SBCL 1.0.11.debian, an implementation of ANSI Common Lisp. More information about SBCL is available at <http://www.sbcl.org/>. SBCL is free software, provided as is, with absolutely no warranty. It is mostly in the public domain; some portions are provided under BSD-style licenses. See the CREDITS and COPYING files in the distribution for more information. * (require :asdf-install) ; loading system definition from ; /usr/lib/sbcl/sb-bsd-sockets/sb-bsd-sockets.asd into #<PACKAGE "ASDF0"> ; registering #<SYSTEM SB-BSD-SOCKETS {AB01A89}> as SB-BSD-SOCKETS ; registering #<SYSTEM SB-BSD-SOCKETS-TESTS {AC67181}> as SB-BSD-SOCKETS-TESTS ("SB-BSD-SOCKETS" "ASDF-INSTALL") * (quit)
有想法该怎么解决这个吗?我在互联网上找到了这篇文章,但是使用它也不起作用。
解决方案
先尝试一下:
(require :asdf)
我们可以从我们使用的环境中窃取一些想法。可以从以下网站获得:darcsweb
请参阅environment.lisp,它会为我们加载并设置asdf。 (sbcl已加载asdf)
我们得到的说明明确地提到了SBCL,因此,我认为,使用SBCL可以使它们更好地工作。 ASDF不附带其他一些Lisps或者不将其连接到CL:REQUIRE。在前一种情况下,我们将自己预先加载ASDF。在后一种情况下,我们需要调用(asdf:oos'asdf:load-op)而不是(require)。
wget http://cclan.cvs.sourceforge.net/checkout/cclan/asdf/asdf.lisp
值得检查clbuild。 http://common-lisp.net/project/clbuild/
要启动并运行Lisp Web服务器。我们只需要:
darcs get http://common-lisp.net/project/clbuild/clbuild cd clbuild chmod +x ./clbuild ./clbuild check ./clbuild build slime hunchentoot ./clbuild preloaded
现在,将开始执行lisp repl。在那写:
* (hunchentoot:start-server :port 8080)
测试服务器是否回答:
wget -O - http://localhost:8080/ <html><head><title>Hunchentoot</title></head> <body><h2>Hunchentoot Default Page</h2> <p>This is the Hunchentoot default page....
在clisp中使用clc:clc-require。请参阅" man common-lisp-controller"。我在clisp中有相同的错误,并通过使用clc:clc-require解决了。 sbcl可以正常工作,只是需要。