can't install "digest" dependency as an unpriviledged user
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 38/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- docker, ruby
- Lĩnh vực
- build-system
Hướng nghiên cứu
Tái hiện lỗi trong image Docker ruby:2.7.4 bằng cách sử dụng thiết lập unprivileged-user và lệnh cài đặt net-imap. Bắt đầu với đầu ra cài đặt của ext/digest và install_headers.rb, đồng thời xem xét issue #14 của ruby/digest được liên kết. Hoàn tất khi net-imap và dependency digest của nó được cài đặt thành công mà không cần quyền nâng cao.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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
- Ngôn ngữ chính
- Ruby
- Star
- 121
- Fork
- 47
- Merge trung bình
- 19 giờ 25 phút
- Pull request đã merge (30 ngày)
- 3
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của ruby/net-imap
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 77/100
-
bug
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 30/100
-
Cannot use FakeServerĐang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 25/100
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 15/100
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 20/100
Tất cả issue của ruby/net-imap
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Websockify heartbeat for vnc_containerCó thể đã có người làm @robinkar đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
Maintainer thường phản hồi trong vòng 1 ngày
-
needs verification
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Maintainer thường phản hồi trong vòng 7 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
akitaonrails/ai-book-2026#13 ·
-
Mend: dependency security vulnerability
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 63/100
Maintainer thường phản hồi trong vòng 1 ngày