w4ll3
(Gregório Granado Magalhães)
3. März 2022 um 15:21
1
Hallo! Ich entwickle ein Plugin , um Sign-In with Ethereum auf Discourse zu ermöglichen. Das Problem ist, dass ich bei der Installation des Plugins einen Fehler mit einer der Abhängigkeiten (rbsecp256k1) erhalte.
ERROR: Error installing rbsecp256k1:
ERROR: Failed to build gem native extension.
current directory: /var/www/discourse/plugins/sdp/gems/2.7.5/gems/rbsecp256k1-5.1.0/ext/rbsecp256k1
/usr/local/bin/ruby -I /usr/local/lib/ruby/site_ruby/2.7.0 -r ./siteconf20220303-1234-gyqjb.rb extconf.rb
extconf.rb:3:in `require': cannot load such file -- mini_portile2 (LoadError)
from extconf.rb:3:in `<main>'
extconf failed, exit code 1
Ich frage mich, was passieren könnte, da es in der Entwicklung funktioniert, wenn ich die Abhängigkeiten manuell installiere.
Falco
(Falco)
3. März 2022 um 15:31
2
w4ll3
(Gregório Granado Magalhães)
3. März 2022 um 15:34
3
Ja, die habe ich bereits installiert. Das Problem tritt auf, wenn mini_portile2 nicht gefunden werden kann, was eine seiner Abhängigkeiten ist.
1 „Gefällt mir“
Falco
(Falco)
3. März 2022 um 15:36
4
Wie haben Sie die Abhängigkeit mini_portile2 in Ihrem Plugin deklariert?
1 „Gefällt mir“
fzngagan
(Faizaan Gagan)
3. März 2022 um 15:51
5
Ich hatte das gleiche Problem bei der Installation derselben Gem-Abhängigkeit.
Schau dir das an:
I’m having to install the eth gem in a plugin but really having a hard time doing that. It depends on a bunch of other gems, a few of which have native extensions. Here’s the dependency list if you wanna give it a try.
gem 'pkg-config', '1.4.7', require: false
gem 'mkmfmf', '0.4', require: false
gem 'keccak', '1.3.0', require: false
gem 'zip', '2.0.2', require: false
gem 'mini_portile2', '2.7.0', require: false
gem 'rbsecp256k1', '5.1.0', require: false
gem 'konstructor', '1.0.2', require: fals…
Ich würde mich freuen, wenn es eine direktere Lösung gäbe.
2 „Gefällt mir“
Falco
(Falco)
3. März 2022 um 16:47
7
Kannst du das nicht einfach fallen lassen, da es bereits im Discourse-Kern enthalten ist?
concurrent-ruby (~> 1.0)
image_optim (0.31.4)
exifr (~> 1.2, >= 1.2.2)
fspath (~> 3.0)
image_size (>= 1.5, < 4)
in_threads (~> 1.3)
progress (~> 3.0, >= 3.0.1)
image_size (3.4.0)
in_threads (1.6.0)
inflection (1.0.0)
io-console (0.8.1)
irb (1.15.3)
pp (>= 0.6.0)
rdoc (>= 4.0.0)
reline (>= 0.4.2)
iso8601 (0.13.0)
jmespath (1.6.2)
json (2.15.2)
json-schema (5.2.2)
addressable (~> 2.8)
bigdecimal (~> 3.1)
1 „Gefällt mir“
w4ll3
(Gregório Granado Magalhães)
3. März 2022 um 17:03
8
Ich meine, ich kann, aber das Problem liegt nicht bei diesem Gem, sondern bei rbsecp256k1. Wenn er versucht zu kompilieren, findet er den mini_portile2-Gem nicht (wie der Fehler besagt: cannot load such file -- mini_portile2 (LoadError) from extconf.rb:3:in <main>').
Sie gehen dieselbe Problematik an wie @fzngagan , siehe seinen Link oben: Having a hard time installing `eth` gem in a plugin in production - #3 by fzngagan , vielleicht können Sie zu seiner Lösung beitragen.
w4ll3
(Gregório Granado Magalhães)
3. März 2022 um 17:29
10
Seine Lösung funktioniert, aber ich halte das nicht für eine gültige Option. Kein Benutzer wäre bereit, all das zu tun, nur um ein Plugin hinzuzufügen. Ich wollte nur wissen, ob jemand einen besseren Ansatz finden könnte (der dem am nächsten kommt, einfach das Repository hinzuzufügen und fertig zu sein). Wie @fzngagan selbst sagte:
Ich würde es lieben, wenn es eine direktere Lösung gäbe.
Und jetzt haben wir zwei Themen zum exakt selben Problem …
1 „Gefällt mir“
w4ll3
(Gregório Granado Magalhães)
3. März 2022 um 21:56
12
Ich habe die Suche eingeschränkt, es scheint nicht mit den Gems zusammenzuhängen, sondern mit extconf.rb. Ich habe es mit ein paar anderen Gems mit einer komplexeren Einrichtung versucht (ruby-magic und libusb), beide funktionieren nicht (aus unterschiedlichen Gründen), gemeinsam haben sie Abhängigkeiten in extconf.rb.
1 „Gefällt mir“
fzngagan
(Faizaan Gagan)
14. März 2022 um 07:43
13
Dieses Problem wurde in den neuesten tests-passed- und stable-Branches von Discourse behoben.
committed 05:20AM - 07 Mar 22 UTC
when bundler is loaded, it sets the `RUBYOPT` environment variable to setup bund… ler. However, it was causing weird errors like the following when we try to install
custom plugin gems into a specific directory.
```
/home/tgxworld/.asdf/installs/ruby/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.3.5/lib/bundler/source/git.rb:214:in `rescue in load_spec_files': https://github.com/discourse/mail.git is not yet checked out. Run `bundle install` first. (Bundler::GitError)
from /home/tgxworld/.asdf/installs/ruby/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.3.5/lib/bundler/source/git.rb:210:in `load_spec_files'
from /home/tgxworld/.asdf/installs/ruby/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.3.5/lib/bundler/source/path.rb:107:in `local_specs'
from /home/tgxworld/.asdf/installs/ruby/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.3.5/lib/bundler/source/git.rb:178:in `specs'
from /home/tgxworld/.asdf/installs/ruby/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.3.5/lib/bundler/lazy_specification.rb:88:in `__materialize__'
from /home/tgxworld/.asdf/installs/ruby/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.3.5/lib/bundler/spec_set.rb:75:in `block in materialize'
from /home/tgxworld/.asdf/installs/ruby/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.3.5/lib/bundler/spec_set.rb:72:in `map!'
from /home/tgxworld/.asdf/installs/ruby/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.3.5/lib/bundler/spec_set.rb:72:in `materialize'
from /home/tgxworld/.asdf/installs/ruby/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.3.5/lib/bundler/definition.rb:468:in `materialize'
from /home/tgxworld/.asdf/installs/ruby/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.3.5/lib/bundler/definition.rb:190:in `specs'
from /home/tgxworld/.asdf/installs/ruby/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.3.5/lib/bundler/definition.rb:238:in `specs_for'
from /home/tgxworld/.asdf/installs/ruby/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.3.5/lib/bundler/runtime.rb:18:in `setup'
from /home/tgxworld/.asdf/installs/ruby/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.3.5/lib/bundler.rb:151:in `setup'
from /home/tgxworld/.asdf/installs/ruby/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.3.5/lib/bundler/setup.rb:20:in `block in <top (required)>'
from /home/tgxworld/.asdf/installs/ruby/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.3.5/lib/bundler/ui/shell.rb:136:in `with_level'
from /home/tgxworld/.asdf/installs/ruby/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.3.5/lib/bundler/ui/shell.rb:88:in `silence'
from /home/tgxworld/.asdf/installs/ruby/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.3.5/lib/bundler/setup.rb:20:in `<top (required)>'
from /home/tgxworld/.asdf/installs/ruby/2.7.5/lib/ruby/site_ruby/2.7.0/rubygems/core_ext/kernel_require.rb:85:in `require'
from /home/tgxworld/.asdf/installs/ruby/2.7.5/lib/ruby/site_ruby/2.7.0/rubygems/core_ext/kernel_require.rb:85:in `require'
```
stable ← tgxworld:backport
opened 07:11AM - 14 Mar 22 UTC
when bundler is loaded, it sets the `RUBYOPT` environment variable to setup bund… ler. However, it was causing weird errors like the following when we try to install
custom plugin gems into a specific directory.
```
/home/tgxworld/.asdf/installs/ruby/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.3.5/lib/bundler/source/git.rb:214:in `rescue in load_spec_files': https://github.com/discourse/mail.git is not yet checked out. Run `bundle install` first. (Bundler::GitError)
from /home/tgxworld/.asdf/installs/ruby/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.3.5/lib/bundler/source/git.rb:210:in `load_spec_files'
from /home/tgxworld/.asdf/installs/ruby/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.3.5/lib/bundler/source/path.rb:107:in `local_specs'
from /home/tgxworld/.asdf/installs/ruby/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.3.5/lib/bundler/source/git.rb:178:in `specs'
from /home/tgxworld/.asdf/installs/ruby/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.3.5/lib/bundler/lazy_specification.rb:88:in `__materialize__'
from /home/tgxworld/.asdf/installs/ruby/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.3.5/lib/bundler/spec_set.rb:75:in `block in materialize'
from /home/tgxworld/.asdf/installs/ruby/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.3.5/lib/bundler/spec_set.rb:72:in `map!'
from /home/tgxworld/.asdf/installs/ruby/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.3.5/lib/bundler/spec_set.rb:72:in `materialize'
from /home/tgxworld/.asdf/installs/ruby/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.3.5/lib/bundler/definition.rb:468:in `materialize'
from /home/tgxworld/.asdf/installs/ruby/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.3.5/lib/bundler/definition.rb:190:in `specs'
from /home/tgxworld/.asdf/installs/ruby/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.3.5/lib/bundler/definition.rb:238:in `specs_for'
from /home/tgxworld/.asdf/installs/ruby/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.3.5/lib/bundler/runtime.rb:18:in `setup'
from /home/tgxworld/.asdf/installs/ruby/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.3.5/lib/bundler.rb:151:in `setup'
from /home/tgxworld/.asdf/installs/ruby/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.3.5/lib/bundler/setup.rb:20:in `block in <top (required)>'
from /home/tgxworld/.asdf/installs/ruby/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.3.5/lib/bundler/ui/shell.rb:136:in `with_level'
from /home/tgxworld/.asdf/installs/ruby/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.3.5/lib/bundler/ui/shell.rb:88:in `silence'
from /home/tgxworld/.asdf/installs/ruby/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.3.5/lib/bundler/setup.rb:20:in `<top (required)>'
from /home/tgxworld/.asdf/installs/ruby/2.7.5/lib/ruby/site_ruby/2.7.0/rubygems/core_ext/kernel_require.rb:85:in `require'
from /home/tgxworld/.asdf/installs/ruby/2.7.5/lib/ruby/site_ruby/2.7.0/rubygems/core_ext/kernel_require.rb:85:in `require'
```
2 „Gefällt mir“
RGJ
(Richard - Communiteq)
14. März 2022 um 17:39
14
fzngagan:
stable
Noch nicht, der PR ist noch nicht zusammengeführt worden.
1 „Gefällt mir“
fzngagan
(Faizaan Gagan)
18. März 2022 um 06:09
18
@RGJ Es gab einige Testfehler, die zuerst behoben werden mussten. Es ist jetzt zusammengeführt.
2 „Gefällt mir“