-
-
Notifications
You must be signed in to change notification settings - Fork 648
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Installation instructions are not user friendly #3708
Comments
IMO, most users wouldn't want this. Racket in Ubuntu's official repository is lagged behind for several versions. For example, in the upcoming release (Ubuntu 21.04), it will only provide Racket 7.8. I feel the current assumption is, if you use Linux, you are a power user. Linking to the PPA is a standard practice to let users know that we provide our own version. That being said, perhaps spelling out the commands needed to be entered might be more friendlier to a fresh Ubuntu user. Then again, if you are a fresh user, you probably can't use shell anyway.
I think this would be nice, though it should be clear that it's optional. A lot of people (particularly students) don't need to set it up. |
How come---I thought @takikawa was pretty much on top of it? But if that's the case, then either apt+lag should be mentioned, or not mentioned at all (as currently). In both cases the instructions to install from the
What about the nearly-fresh user who's learning to use the command line? Every command-line power user has been through this, right? Still, there's a difference between "here's the sequence of commands you need to do" and "figure it out yourself", in particular when spelling out the commands is trivial for us and annoying at best for the user.
I'm okay with a particular webpage set of instructions for students. Their main use case is not the one I described above, and they also can easily reach out to their teacher. |
I started something on the wiki: https://github.com/racket/racket/wiki/Installing-Racket-and-trying-out-a-package-or-a-file |
Mac users can install the latest version of Racket with Homebrew and don't need to edit PATH manually:
or
|
Does it have the same problem as |
I agree about adding instructions to use I also like the idea idea about having a page that package authors/documentation can point to for installing a package, and the new wiki page looks like a good start. I'm ambivalent about trying to explain how to set Maybe on Windows the installer should offer the option of setting On Mac OS DrRacket should maybe offer a menu item to set On Linux and other Unix variants... I have no good idea how to help with In any case, see also here: https://github.com/racket/racket/wiki/Set-your-PATH-environment-variable |
Apparently, adding a menu item to set the command line on Mac OS is a good idea, because it's already there! It's "Configure Command Line for Racket..." in the "Help" menu. |
I may not immediately have a lot of time to work on this, but I can report that non-technical users have found installing a package challenging, even with the GUI and some instructions I've written here. (Feel free to use any of the text or screenshots there if it's useful!) It looks like someone has started maintaining the non-cask |
Notes @mflatt https://github.com/racket/racket/wiki/Set-your-PATH-environment-variable has been corrected to direct the user to the help menu item Installing and running Racket for the first time on
|
Also relevant https://github.com/racket/racket/wiki/How-to-get-started |
Homebrew updates their packages quite quickly. If it's only version bump and doesn't require any further change, the package will be updated automatically. Hombrew code: racket cask, minimal-racket formula |
What interests me in this issue is not the struggles people go through to install Racket, though I do applaud the efforts to improve this situation, but the original problem statement; I don’t think you are expected to install the a compiler+ide to play minecraft or DSP. If an app is intended to run standalone it should be packaged à la https://github.com/racket/racket/wiki/Compiling-standalone-executables (yes I created an inferior one page guide to compiling a standalone app because some people assume Racket is interpreted) What apps should be packaged this way?
Not sure how to improve this situation - maybe update the Scribble in racket-templates for applications to include the basic text on how to Create Executable type:Distribution, or maybe a include shell scripts(for Linux, win &mac) that compile (re)distributable version and sets the icons if it is a gui app, with similar for a command line app, a web-app, a compiler, etc. |
@LiberalArtist Have you watched people try this? What steps do they get stuck on? One thing I notice is that there are a lot of buttons in that dialog. |
@spdegabrielle On the PATH wiki, you say:
What about:
|
@xxyzz Thanks. I think I prefer to not mention homebrew for this wiki page which targets 'really-new users', since it requires installing additional software. |
@spdegabrielle Re. standalones. Having binaries would be nice, but you'd need a server that compiles for all platforms. I can't cross-compile my programs to macOS or Windows myself for example. |
Wonderful, thanks!
That would be great!
I've updated this wiki page to add instructions for Linux, and to mention homebrew and apt. |
The new instructions are starting to be pretty decent I think, and they are complete: Any comment to improve this is welcome! It would also be great to actually test it with real new users and get feedback. |
One thing I can't make up my mind on is whether we should split the page in 2: One page for GUI, on page for CLI. Thoughts? |
@Metaxal Good point about Robby is making the "Configure Command Line for Racket..." menu item work in DrRacket on Windows. Adding an option to the installer appears to be complicated, but it might be relatively easy to add a note to the installer saying that DrRacket provides the option. |
I added this line, hopefully it's accurate:
|
I put something to the drracket Help|Configure Command Line for Racket... menu item under unix that tells people where the path is, but doens't try to do anything about it. Comments welcome |
@jackfirth I thought about that too. On Windows, that seems like a fine idea, except that the path is going to have a version number in it, so DrRacket may need to be smart about removing old paths as a adds new ones. Or there could be a configuration change so that the path doesn't have a version, but that's a whole new set of trade-offs. On Mac OS, I worry about adding a user-specific path to |
That's a start :) Normally, the following line should go into
with a couple of caveats that can be checked. If you're worried about cluttering the .profile with many racket paths, how about this:
(I haven't checked if it really works as is though) Ideally this would all be done by the |
I'm a bit skeptical that we can really accommodate anything close to the number of different ways one can install unix. Is it really reasonable to assume that they're using a bash shell? Or ubuntu? Even under macOS, zsh has become the default shell so using bash-based instructions wouldn't work there. (I realize we're not talking about macOS but that's just the OS I'm most familiar with.) |
|
I really don't think it is a good idea for us to get into the business of dealing with the huge number of possibilities here. It might make sense for us to try to detect, say, one or two popular unix installation (perhaps ubuntu) and then use some ubuntu-provided tool that does path manipulation (so we know it will work on multiple different versions of ubuntu and probably continue to work going forward), which is the case for macOS and Windows but I'm skeptical of more than that. |
I learn toward Robby's view. We try to make tools that fit into the usual ways of doing things on a given OS. Unlike Windows or (to a much lesser degree) Mac OS, it’s not typical or expected for a program to try to modify the |
How about asking whether to add symlinks into If they don't exist, we could at least give the correct path and tell the user to do that themselves maybe? |
Are these things set up in various distributions typically? I tried to google around to find docs about it but came up empty. |
It appears that a default .profile on Ubuntu includes |
I think the situation is somewhat different than what @mflatt remembers. Mostly, other languages that I've found are not distributed as executable installers on Linux (as Racket is), and so this mostly doesn't come up. However, the last few years has seen a big trend in "toolchain managers" which install systems for you to make this easier, and these are almost always (a) executable installers and (b) installed via Here are all the ones I could find:
I also looked at the installation pages for several other languages themselves. The Go installation page explains what to change in |
@samth Based on all this, would you recommend something? |
On Mac OS, the first thing I do when I download a new Racket release is In general, I would think command-line-oriented Unix users would be familiar with setting up there PATH as something they do occasionally. (Or have a tool do for them, for better or for worse: I'd add But the non-technical users I support—and even some of the technical ones—much prefer working with a GUI than a command line, and, as I said, even that can be challenging. |
re @samth:
Unfortunately it's almost entirely remote: IIRC, one of the few exceptions prompted me to write that guide afterwords. I agree that there are a lot of buttons. The initial tab is labeled I see now (I don't know if it existed when I last updated those notes) that, in addition to One thing that I know has posed a challenge is that this GUI is sort of like a command line: the user has to copy-and-paste or type in the name of the package exactly, e.g. case-sensitively and in kebab case. Then the feedback you get is the stream of textual output that For comparison, in Emacs, when I go to |
a user-specific way, also include the result of (find-user-console-bin-dir) related to racket/racket#3708
As for what we should do, I think the shell-script installer should offer to set the path. The best way to do this is probably to add a line like |
I like this. This looks like a simple enough solution. Here's a more general but more convoluted one (so possibly more likely to fail and harder to maintain?).
(*) Skip the offer if the corresponding file already calls If any change has been made:
Note that users that have already been through the process above in a previous installation will likely not see any of the above. Maybe setting the command line should also be part of a raco subcommand or some standalone program, so as to trigger it any time. (edit: add (*) Skip.) |
For unrelated reasons I just checked the Haskell instructions. They have an (arbitrary?) list of Linux distributions https://www.haskell.org/ghc/distribution_packages.html |
re: user-scope Would it make sense to try and install these in TIL: on an OS with systemd the
|
Problem
The docs don't make it easy enough for non-Racket users to run a package's main they've just heard of. This situation occurs often and yet currently it's not dealt with properly in the docs/website. If it was streamlined, it would make a good first impression on potential new users.
More details
Currently, package designers are forced to explain the whole Install Racket process themselves, often not optimally, and leads to a lot of unnecessary duplication. What is needed is a single link to be provided in the package's README saying "Follow these instructions to install racket and this package".
Some missing information in the docs and webpages:
[sudo] apt install racket
should work..sh
and then run/install it with[sudo] sh racket-<something>.sh
There should be a webpage detailing how to install a package, given its name, and run it, in the absence of specific information from the package's docs or readme. Something like the following.
Ideally, this webpage would have a
get
parameterpackage-name
so as to tweak the instructions to the particular package name.Example webpage:
Install the package:
From DrRacket: Click on "File | Install Package…" then type ${the-package} and click "Install".
Or from the command line:
raco pkg install ${the-package}
Running the program
If no specific instruction is given from the package's documentation or README, try the following.
From DrRacket: In an interaction window, type
(require ${the-package})
and press enterOr from the command line:
racket -l ${the-package}
Thoughts?
The text was updated successfully, but these errors were encountered: