-
Notifications
You must be signed in to change notification settings - Fork 22
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
‘/opt/rakudo-pkg/share/perl6/vendor/short’: Permission denied #78
Comments
Hi @ToddAndMargo, I just launched a Fedora:33 container and I can't reproduce the problem:
I think of 2 possible cult-pits:
|
What does your
$ rpm -qa rakudo-pkg
return you?
What does
$ ls -al /opt/rakudo-pkg/share/perl6/vendor
show?
|
|
Maybe it was because I have been upgrading and yours was fresh |
What does |
|
Here is mine $ ls -al /opt/rakudo-pkg/share/perl6/vendor The problem did not go away until I created "short" manually with 2777. Is the installer suppose to create "short" for you? |
No, the package does 3 things:
That's it. On my ubuntu install the upgrade happend without problems even when changing repo's and gpg keys (from bintray to cloudsmith). |
Hmmmmm. Maybe it is because I upgraded. "short" has to be there on mine to avoid all the warning errors. Can you try creating another container of Fedora 33, installing RakudoPkgFedora33-2020.12.x86_64.rpm, run a program, then upgrade to RakudoPkgFedora33-2020.12.04.x86_64.rpm and see what happens? |
It would help if I knew the purpose of the "short" directory. |
Hmmm. I am using custom modules out the wazoo. Did your test program use custom modules that had to be precompiled? |
Maybe the root and user installed modules got mixed up? /opt/rakudo-pkg/bin/zef installs in /opt/rakudo-pkg and need roots privileges, while zef in the user's $HOME (e.g. installed with /opt/rakudo-pkg/bin/install-zef-as-user) will install the modules in the precomp dirs in the $HOME. The second option is the way to go. |
I have not zef'ed any of my custom modules. I am always modifying them. |
Ok, I think I can reproduce the error. Weirdly enough, it went away once I logout as the user and logged in again. |
Or not :/
If it happens, can you delete your .precomp directory? |
Since I created the directory, everything is working fine. |
Hmmm. I am using custom modules out the wazoo. Did your test program use custom modules that had to be precompiled? |
$ echo "class TestLib { }" > TestLib.rakumod Just hangs |
I saw a post about it here: https://www.reddit.com/r/rakulang/comments/kz78y2/running_as_a_service_under_an_unprivileged_user/. I am checking with upstream to check if it's an error in Rakudo release and if it could be fixed on the upcoming release. |
I did |
Upstream issue: rakudo/rakudo#1515 |
Testing changes to sidestep the issue. New packages should be up very soon. |
New packages are being released now. See #80. |
@ToddAndMargo See #81 (comment). Thx for your input! |
Dear Rakudo-pkg,
Fedora 33, x64
After updating from
I now am getting a TON of warning errors when I start
up my programs. The programs do run:
WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
Failed to create directory '/opt/rakudo-pkg/share/perl6/vendor/short' with mode '0o777': Failed to mkdir: Permission denied
in any statement_control at /opt/rakudo-pkg/bin/../share/perl6/lib/Perl6/Grammar.moarvm line 1
in any package_declarator:sym at /opt/rakudo-pkg/bin/../share/perl6/lib/Perl6/Grammar.moarvm line 1
in any package_declarator at /opt/rakudo-pkg/bin/../share/perl6/lib/Perl6/Grammar.moarvm line 1
in any scope_declarator:sym at /opt/rakudo-pkg/bin/../share/perl6/lib/Perl6/Grammar.moarvm line 1
<about 50 more>
perl6 is owned by root with 755 ownership
$ ls -al /opt/rakudo-pkg/share/perl6/vendor
total 12
drwxr-xr-x. 2 root root 4096 Feb 12 17:13 .
drwxr-xr-x. 13 root root 4096 Nov 4 2019 ..
-rw-r--r--. 1 root root 1 Feb 12 03:00 version
The error is reproducible:
$ mkdir /opt/rakudo-pkg/share/perl6/vendor/short
mkdir: cannot create directory ‘/opt/rakudo-pkg/share/perl6/vendor/short’: Permission denied
The following command does shut it up:
$ pwd
/opt/rakudo-pkg/share/perl6/vendor
$ su root -c "mkdir short; chmod -R 2777 short"
And after running a program:
$ ls -al /opt/rakudo-pkg/share/perl6/vendor
total 16
drwxr-xr-x. 3 root root 4096 Feb 13 12:21 .
drwxr-xr-x. 13 root root 4096 Nov 4 2019 ..
drwxrwsrwx. 2 root root 4096 Feb 13 12:21 short
-rw-r--r--. 1 root root 1 Feb 12 03:00 version
"short" retains it ownership.
What gives? A bug in the installer?
Many thanks,
-T
The text was updated successfully, but these errors were encountered: