Comments (5)
$ cat Dockerfile
FROM voidlinux/voidlinux
RUN xbps-install -Suy ruby
RUN gem install --explain rspreadsheet
$ docker build -t rspreadsheet-void $PWD
Sending build context to Docker daemon 5.632kB
Step 1/3 : FROM voidlinux/voidlinux
---> da7d51b57763
Step 2/3 : RUN xbps-install -Suy ruby
---> Running in 8d3ea0c9d6d6
[*] Updating `https://repo.voidlinux.eu/current/x86_64-repodata' ...
x86_64-repodata: [1654KB 0%] 57MB/s ETA: 00m00s
x86_64-repodata: [1654KB 10%] 292KB/s ETA: 00m08s
x86_64-repodata: [1654KB 54%] 554KB/s ETA: 00m01s
x86_64-repodata: [1654KB 88%] 559KB/s ETA: 00m00s
x86_64-repodata: 1654KB [avg rate: 635KB/s]
7 packages will be downloaded:
glibc-2.28_3
gdbm-1.18.1_1
libffi-3.2.1_5
libyaml-0.2.1_1
libcrypto44-2.8.2_1
libssl46-2.8.2_1
ruby-2.5.3_2
6 packages will be installed:
gdbm-1.18.1_1
libffi-3.2.1_5
libyaml-0.2.1_1
libcrypto44-2.8.2_1
libssl46-2.8.2_1
ruby-2.5.3_2
1 package will be updated:
glibc (2.26_3 -> 2.28_3)
Size to download: 12MB
Size required on disk: 33MB
Free space on disk: 135GB
[*] Downloading binary packages
glibc-2.28_3.x86_64.xbps: [7392KB 0%] 31MB/s ETA: 00m00s
glibc-2.28_3.x86_64.xbps: [7392KB 2%] 433KB/s ETA: 00m37s
glibc-2.28_3.x86_64.xbps: [7392KB 7%] 402KB/s ETA: 00m24s
glibc-2.28_3.x86_64.xbps: [7392KB 14%] 441KB/s ETA: 00m18s
glibc-2.28_3.x86_64.xbps: [7392KB 22%] 491KB/s ETA: 00m13s
glibc-2.28_3.x86_64.xbps: [7392KB 32%] 536KB/s ETA: 00m10s
glibc-2.28_3.x86_64.xbps: [7392KB 43%] 593KB/s ETA: 00m07s
glibc-2.28_3.x86_64.xbps: [7392KB 56%] 647KB/s ETA: 00m05s
glibc-2.28_3.x86_64.xbps: [7392KB 69%] 695KB/s ETA: 00m03s
glibc-2.28_3.x86_64.xbps: [7392KB 85%] 749KB/s ETA: 00m01s
glibc-2.28_3.x86_64.xbps: 7392KB [avg rate: 881KB/s]
glibc-2.28_3.x86_64.xbps.sig: [512B 100%] 6944KB/s ETA: 00m00s
glibc-2.28_3.x86_64.xbps.sig: 512B [avg rate: 6944KB/s]
gdbm-1.18.1_1.x86_64.xbps: [108KB 3%] 150MB/s ETA: 00m00s
gdbm-1.18.1_1.x86_64.xbps: [108KB 59%] 56KB/s ETA: 00m00s
gdbm-1.18.1_1.x86_64.xbps: 108KB [avg rate: 95KB/s]
gdbm-1.18.1_1.x86_64.xbps.sig: [512B 100%] 21MB/s ETA: 00m00s
gdbm-1.18.1_1.x86_64.xbps.sig: 512B [avg rate: 21MB/s]
libffi-3.2.1_5.x86_64.xbps: [14KB 27%] 61MB/s ETA: 00m00s
libffi-3.2.1_5.x86_64.xbps: 14KB [avg rate: 219MB/s]
libffi-3.2.1_5.x86_64.xbps.sig: [512B 100%] 6098KB/s ETA: 00m00s
libffi-3.2.1_5.x86_64.xbps.sig: 512B [avg rate: 6098KB/s]
libyaml-0.2.1_1.x86_64.xbps: [43KB 9%] 53MB/s ETA: 00m00s
libyaml-0.2.1_1.x86_64.xbps: 43KB [avg rate: 570MB/s]
libyaml-0.2.1_1.x86_64.xbps.sig: [512B 100%] 8772KB/s ETA: 00m00s
libyaml-0.2.1_1.x86_64.xbps.sig: 512B [avg rate: 8772KB/s]
libcrypto44-2.8.2_1.x86_64.xbps: [622KB 0%] 49MB/s ETA: 00m00s
libcrypto44-2.8.2_1.x86_64.xbps: [622KB 38%] 412KB/s ETA: 00m01s
libcrypto44-2.8.2_1.x86_64.xbps: [622KB 97%] 403KB/s ETA: 00m00s
libcrypto44-2.8.2_1.x86_64.xbps: 622KB [avg rate: 412KB/s]
libcrypto44-2.8.2_1.x86_64.xbps.sig: [512B 100%] 5747KB/s ETA: 00m00s
libcrypto44-2.8.2_1.x86_64.xbps.sig: 512B [avg rate: 5747KB/s]
libssl46-2.8.2_1.x86_64.xbps: [105KB 3%] 59MB/s ETA: 00m00s
libssl46-2.8.2_1.x86_64.xbps: 105KB [avg rate: 1551MB/s]
libssl46-2.8.2_1.x86_64.xbps.sig: [512B 100%] 6579KB/s ETA: 00m00s
libssl46-2.8.2_1.x86_64.xbps.sig: 512B [avg rate: 6579KB/s]
ruby-2.5.3_2.x86_64.xbps: [3774KB 0%] 50MB/s ETA: 00m00s
ruby-2.5.3_2.x86_64.xbps: [3774KB 13%] 510KB/s ETA: 00m06s
ruby-2.5.3_2.x86_64.xbps: [3774KB 29%] 575KB/s ETA: 00m04s
ruby-2.5.3_2.x86_64.xbps: [3774KB 49%] 632KB/s ETA: 00m03s
ruby-2.5.3_2.x86_64.xbps: [3774KB 72%] 692KB/s ETA: 00m01s
ruby-2.5.3_2.x86_64.xbps: [3774KB 96%] 733KB/s ETA: 00m00s
ruby-2.5.3_2.x86_64.xbps: 3774KB [avg rate: 758KB/s]
ruby-2.5.3_2.x86_64.xbps.sig: [512B 100%] 5882KB/s ETA: 00m00s
ruby-2.5.3_2.x86_64.xbps.sig: 512B [avg rate: 5882KB/s]
[*] Verifying package integrity
glibc-2.28_3: verifying RSA signature...
gdbm-1.18.1_1: verifying RSA signature...
libffi-3.2.1_5: verifying RSA signature...
libyaml-0.2.1_1: verifying RSA signature...
libcrypto44-2.8.2_1: verifying RSA signature...
libssl46-2.8.2_1: verifying RSA signature...
ruby-2.5.3_2: verifying RSA signature...
[*] Running transaction tasks
glibc-2.26_3: updating to 2.28_3 ...
glibc-2.28_3: unpacking ...
gdbm-1.18.1_1: unpacking ...
libffi-3.2.1_5: unpacking ...
libyaml-0.2.1_1: unpacking ...
libcrypto44-2.8.2_1: unpacking ...
libssl46-2.8.2_1: unpacking ...
ruby-2.5.3_2: unpacking ...
[*] Configuring unpacked packages
glibc-2.28_3: configuring ...
glibc-2.28_3: updated successfully.
gdbm-1.18.1_1: configuring ...
gdbm-1.18.1_1: installed successfully.
libffi-3.2.1_5: configuring ...
libffi-3.2.1_5: installed successfully.
libyaml-0.2.1_1: configuring ...
libyaml-0.2.1_1: installed successfully.
libcrypto44-2.8.2_1: configuring ...
libcrypto44-2.8.2_1: installed successfully.
libssl46-2.8.2_1: configuring ...
libssl46-2.8.2_1: installed successfully.
ruby-2.5.3_2: configuring ...
ruby-2.5.3_2: installed successfully.
7 downloaded, 6 installed, 1 updated, 6 configured, 0 removed.
Removing intermediate container 8d3ea0c9d6d6
---> 793880351289
Step 3/3 : RUN gem install --explain rspreadsheet
---> Running in e2156740f6ab
Gems to install:
rubyzip-1.2.2
andand-1.3.3
rspreadsheet-0.4.5
Removing intermediate container e2156740f6ab
---> a7e45945b493
Successfully built a7e45945b493
Successfully tagged rspreadsheet-void:latest
from rspreadsheet.
gem install rspreadsheet
also doesn't work on native Void Linux. (This is how I came across the issue.)
Note as well that if I clone the rspreadsheet repo and run bundle
then bundle
correctly identifies libxml-ruby
and installs it.
from rspreadsheet.
I am not sure if I understand what you are trying to achieve (also I have no experience with docker).
The idea behind special libxml-ruby
treatment was to allow systems which already have it installed natively use the system version and do not require gem version. Does Void linux contain libxml-ruby
? (If yes that the behavior is correct and gem should work). I can try to recreate the bug, by installing Void Linux. Which version is it?
from rspreadsheet.
This error is actually because version 0.4.5 has a bug in it, in my opinion.
I'm not completely familiar with how gemspecs dependency graphs are sourced, but I suspect that even if your code on the disk has a gemspec, that it's not being read off the disk and evaluated. I was debugging this problem by trying to debug why my Mac OS X Mojave ruby wasn't requiring libxml-ruby and verified that the code inside of the package_natively_installed?('ruby-libxml')
returned false on my machine:
def self.package_natively_installed?(pkgname)
# if the shell fails, the system command returns nil. In that case we assume that the package is NOT installed. It might be overkill, because I am supresing the stderr as well
(system("dpkg-query -l #{pkgname} 2>/dev/null | grep -q '^i'")==true) or # debian based
(system("rpm -qa 2>/dev/null | grep -q '#{pkgname}' ")==true) or # rpm based
(system("pkg_info -q -e '#{pkgname}-*' >/dev/null 2>&1")==true) # OpenBSD and alike (although OpenBSD registers the gem as a gem, so this is perhaps unnecessary
end
Once I had moved the entire gem from rubygems (found with bundle show rspreadsheet
) to a local directory and amended the Gemfile to read from there for the rspreadsheet gem, it actually did evaluate the block. When I had debug statements inside of package_natively_installed
from where bundle show
gave me the code, it was never evaulated.
My guess is that the gemspec is not evaluated and instead the published version from rubygems is the one that is used.
libxml-ruby dep in 0.4.4: https://rubygems.org/gems/rspreadsheet/versions/0.4.4
No libxml-ruby dep in 0.4.5: https://rubygems.org/gems/rspreadsheet/versions/0.4.5
To fix this, at least temporarily, you can either use 0.4.4 or add the dependency yourself in your Gemfile for libxml-ruby equal to 3.0:
# Keep until rspreadsheet gem dependency is fixed (https://github.com/gorn/rspreadsheet/issues/38)
gem 'libxml-ruby', '3.0'
from rspreadsheet.
I have added (c204657) explanation of this to Troubleshooting guide.
from rspreadsheet.
Related Issues (20)
- FODS support HOT 7
- Setting background color get more cells colorized HOT 13
- Tests failing for ruby >= 2.4.6 HOT 1
- Cells table:covered-table-cell ignored.
- Repeated header rows (contained in table:table-header-rows) are ignored.
- method mispelled: Rspreadsheet::Row#lenght should be #length HOT 1
- Existing formulas do not calculate fields set by rspreadsheet HOT 9
- libxml gem not installed automatically on windows HOT 9
- Header rows are not respected HOT 1
- Rubyzip 1.3.0 and 2.0.0
- rewriting cell addresses in formulas when inserting rows / cells HOT 1
- Size does not ignore formatted cells without content HOT 9
- Randomly crash HOT 1
- Bundler doesn't detect libxml-ruby as a transitive dependency on macOS
- Can we open password protected file HOT 1
- Uncaught exception: cannot load such file -- libxml_ruby even if it's installed. HOT 2
- Problem writing cell with a drop-down list
- Unclear how to set cell number format for date etc.
- Charts in source .ods file cause an error when trying to save. HOT 1
- Iterate worksheets
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rspreadsheet.