Closed sschwarzer closed 3 years ago
In case it matters, here's how Racket was installed:
schwa@warpy:~/sd/racket$ sh ~/distfiles/racket-8.1-x86_64-linux-cs.sh
This program will extract and install Racket v8.1.
Note: the required diskspace for this installation is 658M.
Do you want a Unix-style distribution?
In this distribution mode files go into different directories according
to Unix conventions. A "racket-uninstall" script will be generated
to be used when you want to remove the installation. If you say 'no',
the whole Racket directory is kept in a single installation directory
(movable and erasable), possibly with external links into it -- this is
often more convenient, especially if you want to install multiple
versions or keep it in your home directory.
Enter yes/no (default: no) >
Where do you want to install the "racket" directory tree?
1 - /usr/racket [default]
2 - /usr/local/racket
3 - ~/racket (/home/schwa/racket)
4 - ./racket (here)
Or enter a different "racket" directory to install in.
> 8.1
Checking the integrity of the binary archive... ok.
Unpacking into "/home/schwa/sd/racket/8.1" (Ctrl+C to abort)...
Done.
If you want to install new system links within the "bin", "man"
and "share/applications" subdirectories of a common directory prefix
(for example, "/usr/local") then enter the prefix of an existing
directory that you want to use. This might overwrite existing symlinks,
but not files.
(default: skip links) >
Installation complete.
Did you possibly run raco cross --target x86_64-win32 setup
along the way? I don't quite see how so much of a user-scope raco-cross
installation got rebuilt.
But maybe it doesn't matter. The issue is that the different installations have the same name, and so they have the same user area. (I haven't run into this mainly because I generally use installation scope for packages, including the Racket that I use to run raco cross
.) Probably, in addition to setting a cross installation to use installation scope for package, the installation's name should be configured to fully identify the configuration: version plus target plus VM.
[Note: the package has migrated to racket/raco-cross
, but it appears that I can't reassign the issue to a repo under a different user or organization.]
I should note that the change applies to new target installations, but it will not affect existing target installations. (Use --remove
to remove a target.)
Thanks for the quick reply.
Did you possibly run raco cross --target x86_64-win32 setup along the way?
Not that I know of. Could it be a side effect from installing dependencies?
Oh, I now see that that there's a raco cross option --skip-setup
. Is this about a different form of setup compared to raco cross --target <target> setup
?
The issue is that the different installations have the same name
What does the "name" of an installation mean? Is this the leaf directory where the installation archive is unpacked (in my case 8.1
)? (Seems not, if I make the installation to 8.1-x86_64-linux-cs
instead of 8.1
, I still get the raco cross --browse
failure.)
and so they have the same user area
To clarify, the user area (if I understand the term correctly) is
~/.local/share/racket/8.1
whereas raco-cross seems to work on
~/.local/share/racket/raco-cross/8.1
. I thought that files for different targets are written only to the latter directory (and/or subdirectories).
I haven't run into this mainly because I generally use installation scope for package
Ok, this works for me as well. In case someone comes across this ticket and is looking for more information, it's possible to set the default installation scope to "installation" with: raco pkg config -i --set default-scope installation
, see https://docs.racket-lang.org/pkg/FAQ.html .
[Note: the package has migrated to racket/raco-cross, but it appears that I can't reassign the issue to a repo under a different user or organization.]
Thanks for the heads-up about the move. I see you have changed the README now. :-)
Ah, you're right that the setup phase (related to --skip-setup
) is how the user-scope setup would have happened.
For more on installation names, see https://docs.racket-lang.org/raco/config-file.html#(idx._(gentag._68._(lib._scribblings%2Fraco%2Fraco..scrbl)))
First my observation, starting from a freshly installed Racket 8.1 cs of Fedora Linux 33.
The Racket installation is at
/home/schwa/sd/racket/current
, which is a symlink to/home/schwa/sd/racket/8.1
(only the last path component differs)./home/racket/current/bin
is in my$PATH
:The installation of
raco-cross
seems to go ok:Then I do
It's a bit suspicious to me that
pkgs paths
contains/home/schwa/.local/share/racket/8.1/pkgs
.After the installation of
sexp-diff-lib
,raco cross --browse
no longer works:Before running
raco cross --target x86_64-win32 pkg install --deps search-auto sexp-diff-lib
, I made a copy of the host packages:When I make a diff of the directories
8.1-orig
and8.1
(modified by theraco cross
sexp-diff-lib
installation) withI get the attached output.
diff.txt
Please let me know if you need more information.