Skip to content
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

install script fails in Ubuntu 22 #1299

Open
louis77 opened this issue Feb 16, 2024 · 4 comments
Open

install script fails in Ubuntu 22 #1299

louis77 opened this issue Feb 16, 2024 · 4 comments

Comments

@louis77
Copy link

louis77 commented Feb 16, 2024

Running distro based on Ubuntu 22.04, the install script fails
SBCL version is 2.1.11.debian.

$ curl -L https://lem-project.github.io/linux_installer.sh | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   293  100   293    0     0   3149      0 --:--:-- --:--:-- --:--:--  3184
--2024-02-16 22:03:45--  https://lem-project.github.io/linux-installer.lisp
Auflösen des Hostnamens lem-project.github.io (lem-project.github.io) … 2606:50c0:8000::153, 2606:50c0:8002::153, 2606:50c0:8001::153, ...
Verbindungsaufbau zu lem-project.github.io (lem-project.github.io)|2606:50c0:8000::153|:443 … verbunden.
HTTP-Anforderung gesendet, auf Antwort wird gewartet … 200 OK
Länge: 2584 (2.5K) [application/octet-stream]
Wird in ‘linux-installer.lisp.1’ gespeichert.

linux-installer.lisp.1                        100%[=================================================================================================>]   2.52K  --.-KB/s    in 0s      

2024-02-16 22:03:45 (24.7 MB/s) - ‘linux-installer.lisp.1’ gespeichert [2584/2584]

While evaluating the form starting at line 73, column 0
  of #P"/tmp/linux-installer.lisp":
Unhandled SB-KERNEL:CASE-FAILURE in thread #<SB-THREAD:THREAD "main thread" RUNNING
                                              {1001834103}>:
  NIL fell through ECASE expression. Wanted one of (:DEBIAN :ARCH).

Backtrace for: #<SB-THREAD:THREAD "main thread" RUNNING {1001834103}>
0: ((LAMBDA NIL :IN "/tmp/linux-installer.lisp"))
1: (SB-INT:SIMPLE-EVAL-IN-LEXENV (ECASE (MEMBER-OF *OS-NAME*) (:DEBIAN (TITLE "Installing dependencies...") (UIOP/RUN-PROGRAM:RUN-PROGRAM "sudo apt install -y curl git sbcl libncurses5-dev build-essential" :OUTPUT :INTERACTIVE) (DOT-LINE) (INSTALLING-QLOT) (MAKE-LEM)) (:ARCH)) #<NULL-LEXENV>)
2: (SB-INT:SIMPLE-EVAL-IN-LEXENV (IF (UIOP/OS:GETENV "SUDO_USER") (ECASE (MEMBER-OF *OS-NAME*) (:DEBIAN (TITLE "Installing dependencies...") (UIOP/RUN-PROGRAM:RUN-PROGRAM "sudo apt install -y curl git sbcl libncurses5-dev build-essential" :OUTPUT :INTERACTIVE) (DOT-LINE) (INSTALLING-QLOT) (MAKE-LEM)) (:ARCH)) (FORMAT T "This file need to be run as sudo! ~%")) #<NULL-LEXENV>)
3: (EVAL-TLF (IF (UIOP/OS:GETENV "SUDO_USER") (ECASE (MEMBER-OF *OS-NAME*) (:DEBIAN (TITLE "Installing dependencies...") (UIOP/RUN-PROGRAM:RUN-PROGRAM "sudo apt install -y curl git sbcl libncurses5-dev build-essential" :OUTPUT :INTERACTIVE) (DOT-LINE) (INSTALLING-QLOT) (MAKE-LEM)) (:ARCH)) (FORMAT T "This file need to be run as sudo! ~%")) 10 NIL)
4: ((LABELS SB-FASL::EVAL-FORM :IN SB-INT:LOAD-AS-SOURCE) (IF (UIOP/OS:GETENV "SUDO_USER") (ECASE (MEMBER-OF *OS-NAME*) (:DEBIAN (TITLE "Installing dependencies...") (UIOP/RUN-PROGRAM:RUN-PROGRAM "sudo apt install -y curl git sbcl libncurses5-dev build-essential" :OUTPUT :INTERACTIVE) (DOT-LINE) (INSTALLING-QLOT) (MAKE-LEM)) (:ARCH)) (FORMAT T "This file need to be run as sudo! ~%")) 10)
5: ((LAMBDA (SB-KERNEL:FORM &KEY :CURRENT-INDEX &ALLOW-OTHER-KEYS) :IN SB-INT:LOAD-AS-SOURCE) (IF (UIOP/OS:GETENV "SUDO_USER") (ECASE (MEMBER-OF *OS-NAME*) (:DEBIAN (TITLE "Installing dependencies...") (UIOP/RUN-PROGRAM:RUN-PROGRAM "sudo apt install -y curl git sbcl libncurses5-dev build-essential" :OUTPUT :INTERACTIVE) (DOT-LINE) (INSTALLING-QLOT) (MAKE-LEM)) (:ARCH)) (FORMAT T "This file need to be run as sudo! ~%")) :CURRENT-INDEX 10)
6: (SB-C::%DO-FORMS-FROM-INFO #<FUNCTION (LAMBDA (SB-KERNEL:FORM &KEY :CURRENT-INDEX &ALLOW-OTHER-KEYS) :IN SB-INT:LOAD-AS-SOURCE) {100183679B}> #<SB-C::SOURCE-INFO {1001836763}> SB-C::INPUT-ERROR-IN-LOAD)
7: (SB-INT:LOAD-AS-SOURCE #<SB-INT:FORM-TRACKING-STREAM for "file /tmp/linux-installer.lisp" {10009BF103}> :VERBOSE NIL :PRINT NIL :CONTEXT "loading")
8: ((LABELS SB-FASL::LOAD-STREAM-1 :IN LOAD) #<SB-INT:FORM-TRACKING-STREAM for "file /tmp/linux-installer.lisp" {10009BF103}> NIL)
9: (SB-FASL::CALL-WITH-LOAD-BINDINGS #<FUNCTION (LABELS SB-FASL::LOAD-STREAM-1 :IN LOAD) {757403B2F95B}> #<SB-INT:FORM-TRACKING-STREAM for "file /tmp/linux-installer.lisp" {10009BF103}> NIL #<SB-INT:FORM-TRACKING-STREAM for "file /tmp/linux-installer.lisp" {10009BF103}>)
10: (LOAD #P"/tmp/linux-installer.lisp" :VERBOSE NIL :PRINT NIL :IF-DOES-NOT-EXIST T :EXTERNAL-FORMAT :DEFAULT)
11: (SB-IMPL::PROCESS-EVAL/LOAD-OPTIONS ((:LOAD . "/tmp/linux-installer.lisp") (:EVAL . "(exit)") (:QUIT)))
12: (SB-IMPL::TOPLEVEL-INIT)
13: ((FLET SB-UNIX::BODY :IN SB-IMPL::START-LISP))
14: ((FLET "WITHOUT-INTERRUPTS-BODY-3" :IN SB-IMPL::START-LISP))
15: (SB-IMPL::START-LISP)

unhandled condition in --disable-debugger mode, quitting
@louis77
Copy link
Author

louis77 commented Feb 16, 2024

Did a little more research on this. Obviously, the install script tries to parse the /etc/os-release file and look for the value of the ID field.

This is my config:

$ cat /etc/os-release
NAME="Pop!_OS"
VERSION="22.04 LTS"
ID=pop
ID_LIKE="ubuntu debian"

Obviously the value "pop" then fails in the MEMBER-OF function.

I think it would be better to parse the ID_LIKE fields instead which contains the distro name the current is based on.

From man os-release:

   ID_LIKE=
       A space-separated list of operating system identifiers in the same syntax as the ID= setting. It should list identifiers of operating systems that are closely related
       to the local operating system in regards to packaging and programming interfaces, ...

@garlic0x1
Copy link
Contributor

garlic0x1 commented Feb 16, 2024

I am not familiar with this install script, but it probably just needs to treat Ubuntu the same as Debian. @Sasanidas I think made the script and should add this.

Can you try installing it this way for now?

# Install Qlot
curl -L https://qlot.tech/installer | sh

# Clone Lem
git clone https://github.com/lem-project/lem.git
cd lem

# Build Lem
make sdl2

# Install to $PATH
cp ./lem /usr/bin/lem

# Run Lem
lem

Replace sdl2 with ncurses if you want a terminal interface.

You may also see dependency errors when building, if you have any trouble figuring those out post the errors here and we can help you.

@garlic0x1
Copy link
Contributor

Assuming you have GCC and the normal tools already installed, I think the only other dependencies you might need are either ncurses-devel or sdl2-devel or whatever the packages with headers are named in the Ubuntu repos.

@vcg3rd
Copy link

vcg3rd commented Feb 17, 2024

I arrived here with the same problem, knowing the script must not be recognizing I am using a Debian based distro (Kaisen-Linux). Thanks to the OP I knew where to look. If one has sudo privileges, it is as simple as editing /etc/os-release to id=debian, rerunning the script, and then changing it back (it you want.) No need to build from source.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants