libpkgx icon indicating copy to clipboard operation
libpkgx copied to clipboard

Permission denied (os error 13): mkdir '/home/sa/.local/share/pkgx/pantry'

Open FlatMapIO opened this issue 2 years ago • 3 comments

When I use pkgx in docker, I use the -v to share the host and the contents of the container to avoid duplicate downloads. This caused some problems when starting the pkgx container, and I think it's necessary for useSync to check if the directory exists when creating it.

docker run \
-v ~/.pkgx:/home/sa/.pkgx \
-v ~/.local:/home/sa/.local \
...
× unexpected error Permission denied (os error 13): mkdir '/home/sa/.local/share/pkgx/pantry'
│ PermissionDenied: Permission denied (os error 13): mkdir '/home/sa/.local/share/pkgx/pantry'
│     at Object.mkdirSync (ext:deno_fs/30_fs.js:132:7)
│     at Path.mkdir (https://deno.land/x/[email protected]/src/utils/Path.ts:330:12)
│     at default (https://deno.land/x/[email protected]/src/hooks/useSync.ts:12:42)
│     at ensure_pantry (file:///home/runner/work/pkgx/pkgx/src/app.ts:143:11)
│     at default (file:///home/runner/work/pkgx/pkgx/src/app.ts:38:15)
│     at file:///home/runner/work/pkgx/pkgx/entrypoint.ts:59:9

FlatMapIO avatar Dec 05 '23 02:12 FlatMapIO

We create the directory first:

const unflock = await flock(pantry_dir.mkdir('p'))

This is presumably some other docker related issue. We can help you trace it, no suggestions off the top of my head tho. @jhheider ?

mxcl avatar Dec 23 '23 06:12 mxcl

I know the default filesystem driver on docker desktop for Mac causes frequent permission issues. Not looking at them ATM, but the middle one works fine.

jhheider avatar Dec 23 '23 06:12 jhheider

@jhheider I'm using docker and pkgx in ubuntu. In containers pkgx seems to try to create ~/.local/state/pkgx, which is a -v path that already exists.

FlatMapIO avatar Dec 25 '23 08:12 FlatMapIO