Vanilla-OS / apx

Apx (/à·peks/) is the default package manager in Vanilla OS. It is a wrapper around multiple package managers to install packages and run commands inside a managed container.
https://dev-apx.vanillaos.org
GNU General Public License v3.0
503 stars 41 forks source link

Repository issues when installed on raspbian/rpi #149

Open excited-bore opened 1 year ago

excited-bore commented 1 year ago

What i'm using:

 `.::///+:/-.        --///+//-:``    man@pie 
 `+oooooooooooo:   `+oooooooooooo:    ------------ 
  /oooo++//ooooo:  ooooo+//+ooooo.    OS: Raspbian GNU/Linux 11 (bullseye) armv7l 
  `+ooooooo:-:oo-  +o+::/ooooooo:     Host: Raspberry Pi 4 Model B Rev 1.4 
   `:oooooooo+``    `.oooooooo+-      Kernel: 5.15.84-v7l+ 
     `:++ooo/.        :+ooo+/.`       Uptime: 29 mins 
        ...`  `.----.` ``..           Packages: 1438 (dpkg) 
     .::::-``:::::::::.`-:::-`        Shell: bash 5.1.4 
    -:::-`   .:::::::-`  `-:::-       Theme: PiXflat [GTK3] 
   `::.  `.--.`  `` `.---.``.::`      Icons: PiXflat [GTK3] 
       .::::::::`  -::::::::` `       Terminal: /dev/pts/0 
 .::` .:::::::::- `::::::::::``::.    CPU: BCM2711 (4) @ 1.800GHz 
-:::` ::::::::::.  ::::::::::.`:::-   Memory: 262MiB / 3838MiB 
::::  -::::::::.   `-::::::::  ::::
-::-   .-:::-.``....``.-::-.   -::-                           
 .. ``       .::::::::.     `..`..                            
   -:::-`   -::::::::::`  .:::::`
   :::::::` -::::::::::` :::::::.
   .:::::::  -::::::::. ::::::::
    `-:::::`   ..--.`   ::::::.
      `...`  `...--..`  `...`
            .::::::::::
             `.-::::-`

What i did:

What happened:

[man@pie /home/man]$ apx list --apk
[man@pie /home/man]$ apx list --apt
[man@pie /home/man]$ apx list --zypper

Generate containers. Apps can be installed (almost) flawlessly

[man@pie /home/man]$ apx list --aur
[man@pie /home/man]$ apx list --dnf

Both dont generate containers and give these errors:

[man@pie /home/man]$ sudo journalctl -b | tail
Mar 04 17:09:25 pie dockerd[991]: time="2023-03-04T17:09:25.329816031Z" level=info msg="Attempting next endpoint for pull after error: no matching manifest for linux/arm/v7 in the manifest list entries"
Mar 04 17:09:52 pie dockerd[991]: time="2023-03-04T17:09:52.498280428Z" level=info msg="Attempting next endpoint for pull after error: no matching manifest for linux/arm/v7 in the manifest list entries"

xbps gives and exec error

[man@pie /home/man]$ apx list --xbps 

Container apx_managed_xbps is not running.
Starting container apx_managed_xbps
run this command to follow along:

 docker logs -f apx_managed_xbps

 Error: could not start entrypoint.
exec /usr/bin/entrypoint: exec format error

And nix complains about not finding nix in PATH

[man@pie /home/man]$ apx install --nix neovim
  ERROR   Error installing package(s):                                                                                                                                                                               
Error: exec: "nix": executable file not found in $PATH

Other than that, if installation succeeds, there still seem to be an issue when letting apx export binaries. The file /etc/default/locale does seem to exist on my host, yet pam seems to be unable to find it.

[man@pie /home/man]$ apx export --bin nvim
  ERROR   Error exporting binary: Failed to execute printenv: exit status 1

[man@pie /home/man]$ sudo journalctl -b | tail
Mar 04 17:23:10 pie sudo[11829]: pam_env(sudo:session): Unable to open env file: /etc/default/locale: No such file or directory

I tried running sudo update-locale a few times to no avail.

Would be great if something could be done about:

kbdharun commented 1 year ago

Regarding exporting of binaries, follow the steps here https://github.com/Vanilla-OS/apx#instructions-for-using-apx-in-other-distributions

jamiethecat commented 1 year ago

The nix binary is located at $HOME/.nix-profile/bin/nix, this should be added automatically when initializing nix, granted you're using Bash.

kbdharun commented 1 year ago

The nix binary is located at $HOME/.nix-profile/bin/nix, this should be added automatically when initializing nix, granted you're using Bash.

From their, fetch I can confirm that they are indeed using Bash. Can you share the steps to manually add it?

jamiethecat commented 1 year ago

The nix binary is located at $HOME/.nix-profile/bin/nix, this should be added automatically when initializing nix, granted you're using Bash.

From their, fetch I can confirm that they are indeed using Bash. Can you share the steps to manually add it?

Put export PATH=$PATH:$HOME/.nix-profile/bin at the end of your ~/.bashrc, then reopen your terminal and try again.

excited-bore commented 1 year ago

Doing an export of $HOME/.nix-profile/bin does seem to be root cause of why nix didn't work

[man@pie /home/man]$ apx init --nix

responds succesfully But trying to install f.ex. neovim results in a installation screen that seems to go on forever

▄  Installing [neovim]... (11m6s)

After installing neovim from zypper and trying to let it run

[man@pie /home/man]$ apx install --zypper neovim
[man@pie /home/man]$ apx run nvim
 OCI runtime exec failed: exec failed: unable to start container process: exec: "nvim": executable file not found in $PATH: unknown
[man@burpi /home/man]$ sudo journalctl -b | tail
Mar 07 23:31:46 burpi systemd[1]: run-docker-runtime\x2drunc-moby-3fa362e37ffbd6192b9f04603d3b2c835e07dc093367ba4c8328a67c39b1c292-runc.L1s2b3.mount: Succeeded.
Mar 07 23:31:46 burpi systemd[723]: run-docker-runtime\x2drunc-moby-3fa362e37ffbd6192b9f04603d3b2c835e07dc093367ba4c8328a67c39b1c292-runc.L1s2b3.mount: Succeeded.
Mar 07 23:31:46 burpi dockerd[613]: time="2023-03-07T23:31:46.632540981+01:00" level=error msg="stream copy error: reading from a closed fifo"
Mar 07 23:31:46 burpi dockerd[613]: time="2023-03-07T23:31:46.640708931+01:00" level=error msg="Error running exec 458318a235bfb50def76bff48f91eff63917d0f37e2c34e58753f80e9623aec0 in container: OCI runtime exec failed: exec failed: unable to start container process: exec: \"nvim\": executable file not found in $PATH: unknown"
Mar 07 23:31:56 burpi systemd[723]: run-docker-runtime\x2drunc-moby-c520d9375f41670f23bd815f826510301a2c5b527b35fe4f660259470af4ca95-runc.BpQu9K.mount: Succeeded.
Mar 07 23:31:56 burpi systemd[1]: run-docker-runtime\x2drunc-moby-c520d9375f41670f23bd815f826510301a2c5b527b35fe4f660259470af4ca95-runc.BpQu9K.mount: Succeeded.

But apx run --zypper nvim does work

I also tried

sudo chown <username> ~/.local/share/icons -R

to solve exporting binaries but it didn't resolve the issue

Update:

apz install --zypper neovim

Installing neovin eventually came up with an error, but it did try building so maybe this is a nix specific issue

  ERROR   Error installing package(s): these 308 derivations will be built:                                                                                                                                          
            /nix/store/57hnhskflbzyn93hyiwh9dvwhiwr8d1m-zlib-1.2.13.drv
            /nix/store/fmkcsl4k0v8hiywqn0r1pkhbap81wzh9-perl-5.36.0.drv
            /nix/store/aq1r4vlc2jmin5q2l30aqsccfgjhpsmg-gnum4-1.4.19.drv
            /nix/store/sh0gbkgkhkmassa1wdhbs68lf7ddm52g-bison-3.8.2.drv
            /nix/store/6m535hw6lf9v71n3xpga76spcz0lg407-bash-5.2-p15.drv
            /nix/store/w04l1v866hqv1rr59na8474nppb09s3q-xz-5.4.1.drv
            /nix/store/jr254mdzw8c8pm6n6qbz6qazriv8l2ff-gettext-0.21.drv
            /nix/store/60va3qrxl1bkk047xixxpmw3phqvb17r-binutils-2.40.drv
            /nix/store/cb3sfcqy5ymjr4bnbp006b1p3bvwkb45-binutils-wrapper-2.40.drv
           ...
           ...

            /nix/store/q7v7z4i9xs14j3c25rnb1nnmmzmfbr2q-vim-pack-dir.drv
            /nix/store/spm391wq76jbh3sbrjfpdrk7bqnix14g-manifest.vim.drv
            /nix/store/ci5qdim81r3hi4kpq4k8ad8zvb430z3d-neovim-0.8.3.drv
          building '/nix/store/aq1r4vlc2jmin5q2l30aqsccfgjhpsmg-gnum4-1.4.19.drv'...
          error: builder for '/nix/store/aq1r4vlc2jmin5q2l30aqsccfgjhpsmg-gnum4-1.4.19.drv' failed with exit code 126;
                 last 8 log lines:
                 > unpacking sources
                 > unpacking source archive /nix/store/mcayf992diwks293vs12iwx1ywgm4ijg-m4-1.4.19.tar.bz2
                 > source root is m4-1.4.19
                 > setting SOURCE_DATE_EPOCH to timestamp 1622228112 of file m4-1.4.19/ChangeLog
                 > patching sources
                 > configuring
                 > configure flags: --disable-dependency-tracking --prefix=/nix/store/06nfdxsqj65gc2vh4zdgf34wi41w6y5m-gnum4-1.4.19 --with-syscmd-shell=/nix/store/fgvc7r8pwp53frjzg1v6czi06j986hih-bootstrap-tools/bin/bash
                 > /nix/store/06rnilchqf9z2y941gqkimwlfzm46p3x-bootstrap-stage1-stdenv-linux/setup: ./configure: /bin/sh: bad interpreter: No such file or directory
                 For full logs, run 'nix log /nix/store/aq1r4vlc2jmin5q2l30aqsccfgjhpsmg-gnum4-1.4.19.drv'.
          error: 1 dependencies of derivation '/nix/store/138sfzznqgvwhifmkklb0mcbdjv2p0ys-autoconf-2.71.drv' failed to build
          error: 1 dependencies of derivation '/nix/store/fvg00n34d9v8z4scsyc7dlxsazgy1yns-autoconf-2.71.drv' failed to build
          error: 1 dependencies of derivation '/nix/store/sh0gbkgkhkmassa1wdhbs68lf7ddm52g-bison-3.8.2.drv' failed to build
          error: 1 dependencies of derivation '/nix/store/r2xvp67rk9aj8pcjsxsk079i1bz2qy47-gmp-with-cxx-6.2.1.drv' failed to build
          error: 1 dependencies of derivation '/nix/store/a717y0szcnqslkl5ziklfvn5j1iimvz3-gmp-with-cxx-stage3-6.2.1.drv' failed to build
          error: 1 dependencies of derivation '/nix/store/vwsg12k497gl45ahjzzhz0p7482v5mar-gmp-with-cxx-stage4-6.2.1.drv' failed to build
          error: 1 dependencies of derivation '/nix/store/55jm5hz6ilw77z6xfj32vlbf4g40nn2a-autoreconf-hook.drv' failed to build
          error: 1 dependencies of derivation '/nix/store/6m535hw6lf9v71n3xpga76spcz0lg407-bash-5.2-p15.drv' failed to build
          error: 1 dependencies of derivation '/nix/store/7hkfwg7g77n5cxyigfq1q2kpgjs3zsxs-bash-5.2-p15.drv' failed to build
          error: 1 dependencies of derivation '/nix/store/60va3qrxl1bkk047xixxpmw3phqvb17r-binutils-2.40.drv' failed to build
          error: 1 dependencies of derivation '/nix/store/gq09q8apkmh9p1k94w3agmfp1gpg216p-binutils-2.40.drv' failed to build
          error: 1 dependencies of derivation '/nix/store/7w4lnd8hdw4algj4dihxksfrkh7s9bw2-coreutils-9.1.drv' failed to build
          error: 1 dependencies of derivation '/nix/store/hakj5zjrvcidbgk2kv1a9nycfql3h6dh-gcc-12.2.0.drv' failed to build
          error: 1 dependencies of derivation '/nix/store/dmip408ppr9kyl0bdaw49nmyahxak8as-glibc-2.35-224.drv' failed to build
          error: 1 dependencies of derivation '/nix/store/5yd2agis0nwmzhy4k5gimd0m0fkwb8zy-stdenv-linux.drv' failed to build
          error: 1 dependencies of derivation '/nix/store/qk4sxsz1gihpiy4d342aa9cbr8mqh8kw-stdenv-linux.drv' failed to build
          building '/nix/store/w04l1v866hqv1rr59na8474nppb09s3q-xz-5.4.1.drv'...
          error: 1 dependencies of derivation '/nix/store/ci5qdim81r3hi4kpq4k8ad8zvb430z3d-neovim-0.8.3.drv' failed to build

Error: exit status 1
Nidrop commented 1 year ago

@kbdharun Does apx consider the CPU architecture when initializing the container?

kbdharun commented 1 year ago

@kbdharun Does apx consider the CPU architecture when initializing the container?

I am not sure about it, but it could be possible. We haven't tested apx in arm before.

Nidrop commented 1 year ago

I see in core/container.go: return "ghcr.io/void-linux/void-linux:latest-full-x86_64", nil so currently void linux only works on x86_64 as I understand

kbdharun commented 1 year ago

I see in core/container.go: return "ghcr.io/void-linux/void-linux:latest-full-x86_64", nil so currently void linux only works on x86_64 as I understand

I was informed recently that apx isn't compiled for arm. Currently, apx is available for x86_64 only. There might be arm builds in the distant future.