Hi,
I have want asdf to install files in ~/.asdf-install-dir/systems/, so
I have
(require :asdf)
(pushnew "/home/tpapp/.asdf-install-dir/systems/" asdf:*central-registry* :test #'equal)
in my ~/.sbclrc, which gives
CL> asdf:*central-registry*
("/home/tpapp/.asdf-install-dir/systems/"
(MERGE-PATHNAMES ".clc/systems/" (USER-HOMEDIR-PATHNAME))
(MERGE-PATHNAMES ".sbcl/systems/" (USER-HOMEDIR-PATHNAME))
(LET ((ASDF::HOME (SB-EXT:POSIX-GETENV "SBCL_HOME")))
(WHEN ASDF::HOME (MERGE-PATHNAMES "site-systems/" (TRUENAME ASDF::HOME))))
*DEFAULT-PATHNAME-DEFAULTS* #P"/usr/share/common-lisp/systems/")
But when I try to install,
CL> (asdf-install:install 'bordeaux-threads)
Install where?
1) System-wide install:
System in /usr/lib/sbcl/site-systems/
Files in /usr/lib/sbcl/site/
2) Personal installation:
System in /home/tpapp/.sbcl/systems/
Files in /home/tpapp/.sbcl/site/
-->
Why isn't it ~/.asdf-install-dir/systems/ for the second choice? It
worked fine for CMUCL. SBCL's version is 1.0.5.0-2 (deb package).
Thanks,
Tamas
Tamas Papp <······@gmail.com> wrote:
> Why isn't it ~/.asdf-install-dir/systems/ for the second choice? It
> worked fine for CMUCL. SBCL's version is 1.0.5.0-2 (deb package).
The asdf-install that's included with sbcl does not use
*central-registry* for anything, and I have trouble seeing why that
would be the right thing to do. You can add new install locations
into asdf-install:*locations*.
--
Juho Snellman
On Jun 21, 7:33 pm, Tamas Papp <······@gmail.com> wrote:
> I have want asdf to install files in ~/.asdf-install-dir/systems/, so
[...]
> But when I try to install,
>
> CL> (asdf-install:install 'bordeaux-threads)
> Install where?
> 1) System-wide install:
> System in /usr/lib/sbcl/site-systems/
> Files in /usr/lib/sbcl/site/
> 2) Personal installation:
> System in /home/tpapp/.sbcl/systems/
> Files in /home/tpapp/.sbcl/site/
> -->
>
> Why isn't it ~/.asdf-install-dir/systems/ for the second choice? It
> worked fine for CMUCL. SBCL's version is 1.0.5.0-2 (deb package).
>
> Thanks,
>
I don't know, but here's what I did:
(asdf-install:install ...)
At the symbol install, I press M-., which takes me to the function
definition. There's the interesting symbols called
*preferred-location* here. I can guess what it does. Further down, we
see:
(destructuring-bind (source system name) (install-location)
...)
M-. at install-location, we start to see where this is leading:
(let ((location-selection (or *preferred-location*
(select-location))))
... )
Now, M-. to select-location, and lo,
(loop for (source system name) in *locations*
for i from 1
do (format t "~A) ~A: ~% System in ~A~% Files in ~A ~%"
i name system source))
Place point right after *locations*, and C-xC-e(slime-eval-last-
expression)
((#P"/usr/local/asdf-install/site/" #P"/usr/local/asdf-install/site-
systems/"
"System-wide install")
(#P"/home/tyc20/.asdf-install-dir/site/"
#P"/home/tyc20/.asdf-install-dir/systems/" "Personal
installation"))
Let's try this:
(pushnew '("ghgj" "hgjh" "ghjgjg") asdf-install:*locations*)
When I then try to install something, I get:
Install where?
1) ghjgjg:
System in hgjh
Files in ghgj
2) System-wide install:
System in /usr/local/asdf-install/site-systems/
Files in /usr/local/asdf-install/site/
3) Personal installation:
System in /home/tyc20/.asdf-install-dir/systems/
Files in /home/tyc20/.asdf-install-dir/site/
0) Abort installation.
Yep, looks right. Hope that helps.
Tamas Papp <······@gmail.com> writes:
> Hi,
>
> I have want asdf to install files in ~/.asdf-install-dir/systems/, so
> I have
>
> (require :asdf)
> (pushnew "/home/tpapp/.asdf-install-dir/systems/" asdf:*central-registry* :test #'equal)
>
> in my ~/.sbclrc, which gives
>
> CL> asdf:*central-registry*
> ("/home/tpapp/.asdf-install-dir/systems/"
> (MERGE-PATHNAMES ".clc/systems/" (USER-HOMEDIR-PATHNAME))
> (MERGE-PATHNAMES ".sbcl/systems/" (USER-HOMEDIR-PATHNAME))
> (LET ((ASDF::HOME (SB-EXT:POSIX-GETENV "SBCL_HOME")))
> (WHEN ASDF::HOME (MERGE-PATHNAMES "site-systems/" (TRUENAME ASDF::HOME))))
> *DEFAULT-PATHNAME-DEFAULTS* #P"/usr/share/common-lisp/systems/")
>
> But when I try to install,
>
> CL> (asdf-install:install 'bordeaux-threads)
> Install where?
> 1) System-wide install:
> System in /usr/lib/sbcl/site-systems/
> Files in /usr/lib/sbcl/site/
> 2) Personal installation:
> System in /home/tpapp/.sbcl/systems/
> Files in /home/tpapp/.sbcl/site/
> -->
>
> Why isn't it ~/.asdf-install-dir/systems/ for the second choice? It
> worked fine for CMUCL. SBCL's version is 1.0.5.0-2 (deb package).
Because (not (equal 'asdf 'asdf-install)).
Try asdf-install:*locations*
--
__Pascal Bourguignon__ http://www.informatimago.com/
NOTE: The most fundamental particles in this product are held
together by a "gluing" force about which little is currently known
and whose adhesive power can therefore not be permanently
guaranteed.