codesandbox / codesandbox-client

An online IDE for rapid web development
https://codesandbox.io
Other
13.04k stars 2.27k forks source link

Installing GDC on the VM #8395

Open etcimon opened 6 months ago

etcimon commented 6 months ago

I'd like to add a template to develop using systems programming languages such as C or D, but the VM currently doesn't support it.

Here is where it fails when running apt install gdc for example:

Setting up makedev (2.3.1-97) ...
mknod: mem-: Operation not permitted
makedev mem c 1 1 root kmem 0640: failed
mknod: kmem-: Operation not permitted
makedev kmem c 1 2 root kmem 0640: failed
mknod: null-: Operation not permitted
makedev null c 1 3 root root 0666: failed
mknod: port-: Operation not permitted
makedev port c 1 4 root kmem 0640: failed
mknod: zero-: Operation not permitted
makedev zero c 1 5 root root 0666: failed
mknod: full-: Operation not permitted
makedev full c 1 7 root root 0666: failed
mknod: random-: Operation not permitted
makedev random c 1 8 root root 0666: failed
mknod: urandom-: Operation not permitted
makedev urandom c 1 9 root root 0666: failed
mknod: tty-: Operation not permitted
makedev tty c 5 0 root tty 0666: failed
mknod: ram0-: Operation not permitted
makedev ram0 b 1 0 root disk 0660: failed
mknod: ram1-: Operation not permitted
makedev ram1 b 1 1 root disk 0660: failed
mknod: ram2-: Operation not permitted
makedev ram2 b 1 2 root disk 0660: failed
mknod: ram3-: Operation not permitted
makedev ram3 b 1 3 root disk 0660: failed
mknod: ram4-: Operation not permitted
makedev ram4 b 1 4 root disk 0660: failed
mknod: ram5-: Operation not permitted
makedev ram5 b 1 5 root disk 0660: failed
mknod: ram6-: Operation not permitted
makedev ram6 b 1 6 root disk 0660: failed
mknod: ram7-: Operation not permitted
makedev ram7 b 1 7 root disk 0660: failed
mknod: ram8-: Operation not permitted
makedev ram8 b 1 8 root disk 0660: failed
mknod: ram9-: Operation not permitted
makedev ram9 b 1 9 root disk 0660: failed
mknod: ram10-: Operation not permitted
makedev ram10 b 1 10 root disk 0660: failed
mknod: ram11-: Operation not permitted
makedev ram11 b 1 11 root disk 0660: failed
mknod: ram12-: Operation not permitted
makedev ram12 b 1 12 root disk 0660: failed
mknod: ram13-: Operation not permitted
makedev ram13 b 1 13 root disk 0660: failed
mknod: ram14-: Operation not permitted
makedev ram14 b 1 14 root disk 0660: failed
mknod: ram15-: Operation not permitted
makedev ram15 b 1 15 root disk 0660: failed
mknod: ram16-: Operation not permitted
makedev ram16 b 1 16 root disk 0660: failed
mknod: loop0-: Operation not permitted
makedev loop0 b 7 0 root disk 0660: failed
mknod: loop1-: Operation not permitted
makedev loop1 b 7 1 root disk 0660: failed
mknod: loop2-: Operation not permitted
makedev loop2 b 7 2 root disk 0660: failed
mknod: loop3-: Operation not permitted
makedev loop3 b 7 3 root disk 0660: failed
mknod: loop4-: Operation not permitted
makedev loop4 b 7 4 root disk 0660: failed
mknod: loop5-: Operation not permitted
makedev loop5 b 7 5 root disk 0660: failed
mknod: loop6-: Operation not permitted
makedev loop6 b 7 6 root disk 0660: failed
mknod: loop7-: Operation not permitted
makedev loop7 b 7 7 root disk 0660: failed
mknod: tty0-: Operation not permitted
makedev tty0 c 4 0 root tty 0600: failed
mknod: console-: Operation not permitted
makedev console c 5 1 root tty 0600: failed
/usr/sbin/MAKEDEV: don't know how to make device "tty0"
dpkg: error processing package makedev (--configure):
 installed makedev package post-installation script subprocess returned error exit status 1
CompuIves commented 6 months ago

Hey! Thanks for reporting this. I think we're hitting here a limitation. We run all code inside rootless podman/docker containers, and because of this it cannot always run commands like mount and mknod. I'm checking if there's some kind of workaround, because mounting should still be possible in userspace, even without root access.

Checking why mknod is used and how we can work around that.

CompuIves commented 6 months ago

Hmm, we cannot reproduce it yet, here's a devbox where we installed gdc: https://codesandbox.io/p/devbox/optimistic-boyd-ngqg73?file=/.devcontainer/Dockerfile

etcimon commented 6 months ago

I used SSH on the VM and ran an apt install to obtain this error