can't install "digest" dependency as an unpriviledged user
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 38/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- À l'abandon
- Stack technique
- docker, ruby
- Domaine
- build-system
Piste de recherche
Reproduisez l’échec dans l’image Docker ruby:2.7.4 en utilisant la configuration unprivileged-user et la commande d’installation de net-imap. Commencez par la sortie d’installation de ext/digest et install_headers.rb, et examinez le issue #14 de ruby/digest indiqué. C’est terminé lorsque net-imap et sa dépendance digest s’installent correctement sans permissions élevées.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
This is similar to #24, which failed due to io-wait. In this case https://github.com/ruby/digest/issues/14 prevents installation unless the user has access to update the header install location.
some initial setup to create an unpriviledged user:
$ docker run --rm -it ruby:2.7.4 bash
root@d216e60e0a0c:/# useradd --create-home --shell /bin/bash --user-group user
root@d216e60e0a0c:/# su - user
user@d216e60e0a0c:~$ export GEM_HOME="$HOME/gems/$RUBY_MAJOR"
user@d216e60e0a0c:~$ export GEM_PATH="${GEM_HOME}:${GEM_PATH}"
Now, to prove that the user can install other gems and can compile extensions:
user@d216e60e0a0c:~$ gem install json
Fetching json-2.6.1.gem
Building native extensions. This could take a while...
Successfully installed json-2.6.1
1 gem installed
However, net-imap cannot be installed.
user@d216e60e0a0c:~$ gem install net-imap
Fetching net-imap-0.2.2.gem
Fetching io-wait-0.2.1.gem
Fetching net-protocol-0.1.2.gem
Fetching digest-3.0.0.gem
Building native extensions. This could take a while...
Successfully installed io-wait-0.2.1
Successfully installed net-protocol-0.1.2
Building native extensions. This could take a while...
ERROR: Error installing net-imap:
ERROR: Failed to build gem native extension.
current directory: /home/user/gems/gems/digest-3.0.0/ext/digest
/usr/local/bin/ruby -I /usr/local/lib/ruby/2.7.0 -r ./siteconf20211119-19-e2jvw8.rb extconf.rb
creating Makefile
current directory: /home/user/gems/gems/digest-3.0.0/ext/digest
make "DESTDIR=" clean
current directory: /home/user/gems/gems/digest-3.0.0/ext/digest
make "DESTDIR="
compiling digest.c
linking shared-object digest.so
current directory: /home/user/gems/gems/digest-3.0.0/ext/digest
make "DESTDIR=" install
/usr/bin/install -c -m 0755 digest.so ./.gem.20211119-19-ted4vt
installing digest libraries
/usr/bin/install: cannot remove '/usr/local/include/ruby-2.7.0/ruby/digest.h': Permission denied
make: *** [Makefile:204: /usr/local/include/ruby-2.7.0/ruby/digest.h] Error 1
make install failed, exit code 2
Gem files will remain installed in /home/user/gems/gems/digest-3.0.0 for inspection.
Results logged to /home/user/gems/extensions/x86_64-linux/2.7.0/digest-3.0.0/gem_make.out
And the latest pre-release doesn't fix the issue either:
user@d216e60e0a0c:~$ gem install digest:3.1.0.pre3
Fetching digest-3.1.0.pre3.gem
Building native extensions. This could take a while...
ERROR: Error installing digest:
ERROR: Failed to build gem native extension.
current directory: /home/user/gems/gems/digest-3.1.0.pre3/ext/digest
/usr/local/bin/ruby -I /usr/local/lib/ruby/2.7.0 -r ./siteconf20211119-179-agra2q.rb extconf.rb
creating Makefile
current directory: /home/user/gems/gems/digest-3.1.0.pre3/ext/digest
make "DESTDIR=" clean
current directory: /home/user/gems/gems/digest-3.1.0.pre3/ext/digest
make "DESTDIR="
compiling digest.c
linking shared-object digest.so
current directory: /home/user/gems/gems/digest-3.1.0.pre3/ext/digest
make "DESTDIR=" install
/usr/bin/install -c -m 0755 digest.so ./.gem.20211119-179-904e0d
installing header files
install -c -m 644 ./digest.h /usr/local/include/ruby-2.7.0/ruby
/usr/local/lib/ruby/2.7.0/fileutils.rb:1415:in `initialize': Permission denied @ rb_sysopen - /usr/local/include/ruby-2.7.0/ruby/digest.h (Errno::EACCES)
from /usr/local/lib/ruby/2.7.0/fileutils.rb:1415:in `open'
from /usr/local/lib/ruby/2.7.0/fileutils.rb:1415:in `block in copy_file'
from /usr/local/lib/ruby/2.7.0/fileutils.rb:1414:in `open'
from /usr/local/lib/ruby/2.7.0/fileutils.rb:1414:in `copy_file'
from /usr/local/lib/ruby/2.7.0/fileutils.rb:511:in `copy_file'
from /usr/local/lib/ruby/2.7.0/fileutils.rb:880:in `block in install'
from /usr/local/lib/ruby/2.7.0/fileutils.rb:1589:in `block in fu_each_src_dest'
from /usr/local/lib/ruby/2.7.0/fileutils.rb:1603:in `fu_each_src_dest0'
from /usr/local/lib/ruby/2.7.0/fileutils.rb:1587:in `fu_each_src_dest'
from /usr/local/lib/ruby/2.7.0/fileutils.rb:876:in `install'
from install_headers.rb:9:in `block in <main>'
from install_headers.rb:8:in `each'
from install_headers.rb:8:in `<main>'
make: *** [Makefile:283: do-install-headers] Error 1
make install failed, exit code 2
Gem files will remain installed in /home/user/gems/gems/digest-3.1.0.pre3 for inspection.
Results logged to /home/user/gems/extensions/x86_64-linux/2.7.0/digest-3.1.0.pre3/gem_make.out
- Langage dominant
- Ruby
- Étoiles
- 121
- Forks
- 47
- Merge moyen
- 19 h 25 min
- PR mergées (30 j)
- 3
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de ruby/net-imap
-
Difficulté 2/5 1-3 heures Accessibilité débutants 77/100
-
bug
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 30/100
-
Cannot use FakeServerOuverte
Difficulté 3/5 1-2 jours Accessibilité débutants 25/100
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 15/100
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 20/100
Toutes les issues de ruby/net-imap
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
Les mainteneurs répondent en général sous 1 jour
-
Websockify heartbeat for vnc_containerPeut-être pris @robinkar l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
Les mainteneurs répondent en général sous 1 jour
-
needs verification
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
Les mainteneurs répondent en général sous 7 jours
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 88/100
akitaonrails/ai-book-2026#13 ·
-
Mend: dependency security vulnerability
Difficulté 2/5 1-3 heures Accessibilité débutants 63/100
Les mainteneurs répondent en général sous 1 jour