Schleuder installation fails due to dependency issues: *** schleuder.yml (Y/I/N/O/D/Z) [default=N] ? Ignoring bcrypt-3.1.20 because its extensions are not built. Try: gem pristine bcrypt --version 3.1.20 Ignoring charlock_holmes-0.7.9 because its extensions are not built. Try: gem pristine charlock_holmes --version 0.7.9 Ignoring debug-1.9.2 because its extensions are not built. Try: gem pristine debug --version 1.9.2 Ignoring ffi-1.17.0 because its extensions are not built. Try: gem pristine ffi --version 1.17.0 Ignoring nio4r-2.7.3 because its extensions are not built. Try: gem pristine nio4r --version 2.7.3 Ignoring puma-6.6.0 because its extensions are not built. Try: gem pristine puma --version 6.6.0 Ignoring racc-1.7.3 because its extensions are not built. Try: gem pristine racc --version 1.7.3 Ignoring rbs-3.4.0 because its extensions are not built. Try: gem pristine rbs --version 3.4.0 Ignoring sdbm-1.0.0 because its extensions are not built. Try: gem pristine sdbm --version 1.0.0 Ignoring sqlite3-1.7.3 because its extensions are not built. Try: gem pristine sqlite3 --version 1.7.3 Ignoring thin-1.8.2 because its extensions are not built. Try: gem pristine thin --version 1.8.2 rake aborted! LoadError: cannot load such file -- ffi_c (LoadError) <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require' <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require' <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require' <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require' /usr/share/rubygems-integration/all/gems/ethon-0.16.0/lib/ethon.rb:3:in `<top (required)>' <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require' <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require' /usr/share/rubygems-integration/all/gems/typhoeus-1.4.0/lib/typhoeus.rb:2:in `<top (required)>' <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:160:in `require' <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:160:in `rescue in require' <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:149:in `require' <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require' <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require' Caused by: LoadError: cannot load such file -- 3.3/ffi_c (LoadError) <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require' <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require' <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require' <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require' /usr/share/rubygems-integration/all/gems/ethon-0.16.0/lib/ethon.rb:3:in `<top (required)>' <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require' <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require' /usr/share/rubygems-integration/all/gems/typhoeus-1.4.0/lib/typhoeus.rb:2:in `<top (required)>' <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:160:in `require' <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:160:in `rescue in require' <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:149:in `require' <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require' <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require' Caused by: LoadError: cannot load such file -- typhoeus (LoadError) <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require' <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require' <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require' <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require' (See full trace by running task with --trace) dpkg: error processing package schleuder (--configure): installed schleuder package post-installation script subprocess returned error exit status 1
Further debugging info:
* run `apt install --reinstall` against each of the broken build
dependencies
* run `apt install ruby-dev`
* run `gem pristine --all`
This gets rid of the first few the errors, but bumps up against a
different error when trying to rebuild the `ruby-ffi` gem:
ERROR: While executing gem ... (Gem::Package::FormatError)
No such file or directory @ rb_sysopen -
/usr/lib/x86_64-linux-gnu/rubygems-integration/3.3.0/cache/ffi-1.17.0.gem
root@fum:/etc/schleuder# ls
/usr/lib/x86_64-linux-gnu/rubygems-integration/3.3.0/cache/ffi-1.17.0.gem
ls: cannot access
'/usr/lib/x86_64-linux-gnu/rubygems-integration/3.3.0/cache/ffi-1.17.0.gem':
No such file or directory
root@fum:/etc/schleuder# ls
/usr/lib/x86_64-linux-gnu/rubygems-integration/3.3.0/cache/f*
/usr/lib/x86_64-linux-gnu/rubygems-integration/3.3.0/cache/ffi-1.17.0-x86_64-linux-musl.gem
root@fum:/etc/schleuder#
Where did that `musl` come from?
Further news: I had to install several build dependencies to fix the ruby-ffi and ruby-sqlite3 gems: ``` apt install build-essential pkg-config libsqlite3-dev gem pristine --all ``` This appears to be a ruby ecosystem packaging issue rather than specific to schleuder. See e.g.: * https://lists.debian.org/debian-ruby/2025/04/msg00022.html * https://stackoverflow.com/questions/75077888/package-configuration-not-found-despite-sqlite3-being-installed After this, installing schleuder threw a different error: ``` ArgumentError: Unknown migration version "7.1"; expected one of "4.2", "5.0", "5.1", "5.2", "6.0", "6.1" (ArgumentError) raise ArgumentError, "Unknown migration version #{version.inspect}; expected one of #{versions.sort.join(', ')}" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/share/rubygems-integration/all/gems/activerecord-6.1.7.3/lib/active_record/migration/compatibility.rb:11:in `find' /usr/share/rubygems-integration/all/gems/activerecord-6.1.7.3/lib/active_record/migration.rb:567:in `[]' <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require' <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require' ``` This is because schleuder's debian packaging requires any version of activerecord, but upstream schleuder v5.0.1 specifically depends on activerecord >=7.1. After upgrading to the latest version of ruby-activerecord, schleuder finally installs. A
More ruby dependency hell, now preventing schleuder-api-daemon from starting up: Dec 21 10:37:27 fum systemd[1]: Started schleuder-api-daemon.service - Schleuder API daemon. Dec 21 10:37:28 fum schleuder-api-daemon[2958612]: /usr/lib/ruby/vendor_ruby/rubygems/specification.rb:2248:in `raise_if_conflicts': Unable to activate thin-1.8.2, because rack-3.1.18 conflicts with rack (>= 1, < 3) (Gem::ConflictError) Dec 21 10:37:28 fum schleuder-api-daemon[2958612]: from /usr/lib/ruby/vendor_ruby/rubygems/specification.rb:1379:in `activate' Dec 21 10:37:28 fum schleuder-api-daemon[2958612]: from /usr/lib/ruby/vendor_ruby/rubygems.rb:211:in `rescue in try_activate' Dec 21 10:37:28 fum schleuder-api-daemon[2958612]: from /usr/lib/ruby/vendor_ruby/rubygems.rb:204:in `try_activate' Dec 21 10:37:28 fum schleuder-api-daemon[2958612]: from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:153:in `rescue in require' Dec 21 10:37:28 fum schleuder-api-daemon[2958612]: from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:149:in `require' Dec 21 10:37:28 fum schleuder-api-daemon[2958612]: from /usr/lib/ruby/vendor_ruby/schleuder-api-daemon.rb:10:in `<top (required)>' Dec 21 10:37:28 fum schleuder-api-daemon[2958612]: from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require' Dec 21 10:37:28 fum schleuder-api-daemon[2958612]: from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require' Dec 21 10:37:28 fum schleuder-api-daemon[2958612]: from /usr/bin/schleuder-api-daemon:4:in `<main>' Dec 21 10:37:28 fum schleuder-api-daemon[2958612]: /usr/lib/ruby/vendor_ruby/rubygems/specification.rb:2248:in `raise_if_conflicts': Unable to activate thin-1.8.2, because rack-3.1.18 conflicts with rack (>= 1, < 3) (Gem::ConflictError) Dec 21 10:37:28 fum schleuder-api-daemon[2958612]: from /usr/lib/ruby/vendor_ruby/rubygems/specification.rb:1379:in `activate' Dec 21 10:37:28 fum schleuder-api-daemon[2958612]: from /usr/lib/ruby/vendor_ruby/rubygems.rb:205:in `try_activate' Dec 21 10:37:28 fum schleuder-api-daemon[2958612]: from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:153:in `rescue in require' Dec 21 10:37:28 fum schleuder-api-daemon[2958612]: from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:149:in `require' Dec 21 10:37:28 fum schleuder-api-daemon[2958612]: from /usr/lib/ruby/vendor_ruby/schleuder-api-daemon.rb:10:in `<top (required)>' Dec 21 10:37:28 fum schleuder-api-daemon[2958612]: from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require' Dec 21 10:37:28 fum schleuder-api-daemon[2958612]: from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require' Dec 21 10:37:28 fum schleuder-api-daemon[2958612]: from /usr/bin/schleuder-api-daemon:4:in `<main>' Dec 21 10:37:28 fum schleuder-api-daemon[2958612]: <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require': cannot load such file -- thin (LoadError) Dec 21 10:37:28 fum schleuder-api-daemon[2958612]: from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require' Dec 21 10:37:28 fum schleuder-api-daemon[2958612]: from /usr/lib/ruby/vendor_ruby/schleuder-api-daemon.rb:10:in `<top (required)>' Dec 21 10:37:28 fum schleuder-api-daemon[2958612]: from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require' Dec 21 10:37:28 fum schleuder-api-daemon[2958612]: from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require' Dec 21 10:37:28 fum schleuder-api-daemon[2958612]: from /usr/bin/schleuder-api-daemon:4:in `<main>' Dec 21 10:37:28 fum systemd[1]: schleuder-api-daemon.service: Main process exited, code=exited, status=1/FAILURE Dec 21 10:37:28 fum systemd[1]: schleuder-api-daemon.service: Failed with result 'exit-code'.
This seems to be because: * schleuder depends directly on both thin~>1 and sinatra>=3.1 * thin 1.8.2 depends on rack < 3 * trixie ships with sinatra 4.1.1, which depends on rack >= 3 * conflict I attempted to fix this by forcibly downgrading sinatra and rack: ``` apt install ruby-sinatra=3.0.5-3 ruby-rack=2.2.13-1~deb12u1 ruby-rack-protection=3.0.5-3 ``` This however forcibly removed schleuder. On reinstalling schleuder, sinatra and rack were upgraded to the conflicting versions again: ``` root@fum:/etc/schleuder# apt install schleuder Reading package lists... Done Building dependency tree... Done Reading state information... Done The following additional packages will be installed: ruby-rack ruby-rack-protection ruby-rack-session ruby-rackup ruby-sinatra ruby-sinatra-contrib The following NEW packages will be installed: ruby-rack-session ruby-rackup ruby-sinatra-contrib schleuder The following packages will be upgraded: ruby-rack ruby-rack-protection ruby-sinatra 3 upgraded, 4 newly installed, 0 to remove and 586 not upgraded. Need to get 0 B/439 kB of archives. After this operation, 597 kB of additional disk space will be used. Do you want to continue? [Y/n] (Reading database ... 74323 files and directories currently installed.) Preparing to unpack .../0-ruby-rack-protection_4.1.1-5_all.deb ... Unpacking ruby-rack-protection (4.1.1-5) over (3.0.5-3) ... Preparing to unpack .../1-ruby-sinatra_4.1.1-5_all.deb ... Unpacking ruby-sinatra (4.1.1-5) over (3.0.5-3) ... Preparing to unpack .../2-ruby-rack_3.1.18-1~deb13u1_all.deb ... Unpacking ruby-rack (3.1.18-1~deb13u1) over (2.2.13-1~deb12u1) ... Selecting previously unselected package ruby-rack-session. Preparing to unpack .../3-ruby-rack-session_2.1.1-0.1_all.deb ... Unpacking ruby-rack-session (2.1.1-0.1) ... Selecting previously unselected package ruby-rackup. Preparing to unpack .../4-ruby-rackup_2.1.0-4_all.deb ... Unpacking ruby-rackup (2.1.0-4) ... Selecting previously unselected package ruby-sinatra-contrib. Preparing to unpack .../5-ruby-sinatra-contrib_4.1.1-5_all.deb ... Unpacking ruby-sinatra-contrib (4.1.1-5) ... Selecting previously unselected package schleuder. Preparing to unpack .../6-schleuder_5.0.1-2_all.deb ... Unpacking schleuder (5.0.1-2) ... Setting up ruby-rack (3.1.18-1~deb13u1) ... Setting up ruby-rack-session (2.1.1-0.1) ... Setting up ruby-rack-protection (4.1.1-5) ... Setting up ruby-rackup (2.1.0-4) ... Setting up ruby-sinatra (4.1.1-5) ... Setting up ruby-sinatra-contrib (4.1.1-5) ... Setting up schleuder (5.0.1-2) ... ``` And schleuder-api-daemon refuses to start up again. Schleuder is therefore technically uninstallable due to a gem dependency conflict, although some basic functions do work because they do not depend on thin.
I tried on a clean VM and schleuder installs correctly. It looks like your system has packages from different Debian releases, and also has packages installed manually with `gem`. Is your system fully updated with regards to stable? Are there other Ruby applications installed? Any of them using `gem install`, `bundler` etc? Please provide the output of `gem list` Please provide the output of `find /usr/ -name \*.gem`
Hi, Antonio. Thanks for looking into this. Does schleuder-api-daemon start up? No, I'm currently upgrading it gradually because of past problems when upgrading parts of my mail-handling stack, which caused me to have to revert, painfully. Even so, I would have hoped that schleuder would fail any dependency requirements at install time, not runtime. some cruft over the years. I did run `go dependency -R` and noted that a few gems were orphaned, possibly from previous experimentation. If I try to `apt remove ruby` it tells me: ``` The following packages will be REMOVED: libruby libruby3.1 libruby3.3 puma rake ruby ruby-activemodel ruby-activerecord ruby-activesupport ruby-bcrypt ruby-charlock-holmes ruby-dev ruby-ethon ruby-eventmachine ruby-ffi ruby-gpgme ruby-mail ruby-mime-types ruby-mini-mime ruby-nio4r ruby-rack ruby-rack-protection ruby-rack-session ruby-rackup ruby-rubygems ruby-sdbm ruby-sinatra ruby-sinatra-contrib ruby-sqlite3 ruby-thor ruby-tilt ruby-typhoeus ruby3.3 ruby3.3-dev schleuder schleuder-cli thin unhide.rb ``` Of those, the only one that I recall manually installing is unhide.rb, which is used by rkhunter. It is already at the latest version though. root@fum:/etc/schleuder# gem list *** LOCAL GEMS *** abbrev (default: 0.1.2) activemodel (7.2.2.1) activerecord (7.2.2.1) activesupport (7.2.2.1) base64 (default: 0.2.0) bcrypt (3.1.20) benchmark (default: 0.3.0) bigdecimal (default: 3.1.5) bundler (default: 2.5.22) cgi (default: 0.4.2) charlock_holmes (0.7.9) concurrent-ruby (1.3.5) concurrent-ruby-edge (0.7.2) connection_pool (2.4.1) csv (3.3.4, default: 3.2.8) daemons (1.4.1) date (default: 3.3.4) debug (1.9.2) delegate (default: 0.3.1) did_you_mean (1.6.3) digest (default: 3.1.1) drb (default: 2.2.0) english (default: 0.8.0) erb (default: 4.0.3) error_highlight (default: 0.6.0) etc (default: 1.4.3) ethon (0.16.0) eventmachine (1.3.0.dev.1) fcntl (default: 1.1.0) ffi (1.17.0) fiddle (default: 1.1.2) fileutils (default: 1.7.2) find (default: 0.2.0) forwardable (default: 1.3.3) getoptlong (default: 0.2.1) gpgme (2.0.23) i18n (1.14.7) io-console (default: 0.7.1) io-nonblock (default: 0.3.0) io-wait (default: 0.3.1) ipaddr (default: 1.2.6) irb (default: 1.13.1) json (default: 2.7.2) logger (default: 1.6.0) mail (2.8.1) matrix (0.4.2) mime-types (3.6.0) mime-types-data (3.2024.0206) mini_mime (1.1.5) mini_portile2 (2.8.7) minitest (5.20.0) multi_json (1.15.0) mustermann (3.0.0) mutex_m (default: 0.2.0) net-ftp (0.3.4) net-http (default: 0.4.1) net-imap (0.4.19) net-pop (0.1.2) net-protocol (default: 0.2.2) net-smtp (0.5.1) net-telnet (0.2.0) nio4r (2.7.3) nkf (default: 0.1.3) observer (default: 0.1.2) open-uri (default: 0.4.1) open3 (default: 0.2.1) openssl (default: 3.2.0) optparse (default: 0.4.0) ostruct (default: 0.6.0) pathname (default: 0.3.0) power_assert (2.0.3) pp (default: 0.5.0) prettyprint (default: 0.2.0) prime (0.1.2) prism (default: 0.19.0) pstore (default: 0.1.3) psych (default: 5.1.2) puma (6.6.0) racc (1.7.3) rack (3.1.18) rack-protection (4.1.1) rack-session (2.1.1) rackup (2.1.0) rake (13.1.0, 13.0.6) rbs (3.4.0) rdoc (default: 6.6.3.1) readline (default: 0.0.4) reline (default: 0.5.10) resolv (default: 0.3.0) resolv-replace (default: 0.1.1) rexml (3.3.9) rinda (default: 0.2.0) rss (0.3.1) ruby2_keywords (0.0.5) rubygems-update (3.6.7) schleuder (5.0.1) schleuder-cli (0.1.0) sdbm (1.0.0) securerandom (default: 0.3.1) set (default: 1.1.0) shellwords (default: 0.2.0) sinatra (4.1.1) sinatra-contrib (4.1.1) singleton (default: 0.2.0) sqlite3 (1.7.3) stringio (default: 3.1.1) strscan (default: 3.0.9) syntax_suggest (default: 2.0.1) syslog (default: 0.1.2) tempfile (default: 0.2.1) test-unit (3.6.1) thin (1.8.2) thor (1.3.2) tilt (2.4.0) time (default: 0.3.0) timeout (default: 0.4.1) tmpdir (default: 0.2.0) tsort (default: 0.2.0) typeprof (0.21.9) typhoeus (1.4.0) tzinfo (2.0.6) un (default: 0.3.0) uri (default: 0.13.2) weakref (default: 0.1.3) webrick (1.9.1) xmlrpc (0.3.3) yaml (default: 0.3.0) zeitwerk (2.6.8) zlib (default: 3.1.1) root@fum:/etc/schleuder# find /usr -name '*.gem' /usr/share/rubygems-integration/3.3.0/cache/gpgme-2.0.23.gem /usr/share/rubygems-integration/all/gems/rubygems-update-3.3.15/test/rubygems/packages/ill-formatted-platform-1.0.0.10.gem /usr/share/rubygems-integration/all/gems/rubygems-update-3.3.15/test/rubygems/packages/ascii_binder-0.1.10.1.gem /usr/share/rubygems-integration/all/cache/mail-2.7.1.gem /usr/share/rubygems-integration/all/cache/net-telnet-0.2.0.gem /usr/share/rubygems-integration/all/cache/concurrent-ruby-1.1.6.gem /usr/share/rubygems-integration/all/cache/rack-session-2.1.1.gem /usr/share/rubygems-integration/all/cache/rake-13.0.6.gem /usr/share/rubygems-integration/all/cache/mustermann-3.0.0.gem /usr/share/rubygems-integration/all/cache/mini_portile2-2.8.7.gem /usr/share/rubygems-integration/all/cache/concurrent-ruby-edge-0.6.0.gem /usr/share/rubygems-integration/all/cache/activerecord-6.1.7.3.gem /usr/share/rubygems-integration/all/cache/mime-types-3.6.0.gem /usr/share/rubygems-integration/all/cache/ethon-0.16.0.gem /usr/share/rubygems-integration/all/cache/rack-protection-4.1.1.gem /usr/share/rubygems-integration/all/cache/sinatra-contrib-4.1.1.gem /usr/share/rubygems-integration/all/cache/csv-3.3.4.gem /usr/share/rubygems-integration/all/cache/pkg-config-1.5.9.gem /usr/share/rubygems-integration/all/cache/rubygems-update-3.3.15.gem /usr/share/rubygems-integration/all/cache/i18n-1.10.0.gem /usr/share/rubygems-integration/all/cache/did_you_mean-1.6.3.gem /usr/share/rubygems-integration/all/cache/sinatra-4.1.1.gem /usr/share/rubygems-integration/all/cache/activemodel-6.1.7.3.gem /usr/share/rubygems-integration/all/cache/multi_json-1.14.1.gem /usr/share/rubygems-integration/all/cache/daemons-1.4.1.gem /usr/share/rubygems-integration/all/cache/mini_mime-1.1.1.gem /usr/share/rubygems-integration/all/cache/activesupport-6.1.7.3.gem /usr/share/rubygems-integration/all/cache/mime-types-data-3.2024.0206.gem /usr/share/rubygems-integration/all/cache/ruby2_keywords-0.0.5.gem /usr/share/rubygems-integration/all/cache/rackup-2.1.0.gem /usr/share/rubygems-integration/all/cache/rack-3.1.18.gem /usr/lib/x86_64-linux-gnu/rubygems-integration/3.3.0/cache/bcrypt-3.1.20.gem /usr/lib/x86_64-linux-gnu/rubygems-integration/3.3.0/cache/thin-1.8.2.gem /usr/lib/x86_64-linux-gnu/rubygems-integration/3.3.0/cache/puma-6.6.0.gem /usr/lib/x86_64-linux-gnu/rubygems-integration/3.3.0/cache/ffi-1.17.0.gem /usr/lib/x86_64-linux-gnu/rubygems-integration/3.3.0/cache/sdbm-1.0.0.gem /usr/lib/x86_64-linux-gnu/rubygems-integration/3.3.0/cache/charlock_holmes-0.7.9.gem /usr/lib/x86_64-linux-gnu/rubygems-integration/3.3.0/cache/sqlite3-1.7.3.gem /usr/lib/x86_64-linux-gnu/rubygems-integration/3.3.0/cache/ffi-1.17.0-x86_64-linux-musl.gem /usr/lib/x86_64-linux-gnu/rubygems-integration/3.3.0/cache/nio4r-2.7.3.gem /usr/lib/ruby/gems/3.3.0/cache/net-imap-0.4.19.gem /usr/lib/ruby/gems/3.3.0/cache/net-pop-0.1.2.gem /usr/lib/ruby/gems/3.3.0/cache/rss-0.3.1.gem /usr/lib/ruby/gems/3.3.0/cache/minitest-5.20.0.gem /usr/lib/ruby/gems/3.3.0/cache/racc-1.7.3.gem /usr/lib/ruby/gems/3.3.0/cache/net-smtp-0.5.1.gem /usr/lib/ruby/gems/3.3.0/cache/debug-1.9.2.gem /usr/lib/ruby/gems/3.3.0/cache/rbs-3.4.0.gem /usr/lib/ruby/gems/3.3.0/cache/matrix-0.4.2.gem /usr/lib/ruby/gems/3.3.0/cache/rexml-3.3.9.gem /usr/lib/ruby/gems/3.3.0/cache/prime-0.1.2.gem /usr/lib/ruby/gems/3.3.0/cache/net-ftp-0.3.4.gem /usr/lib/ruby/gems/3.3.0/cache/rake-13.1.0.gem /usr/lib/ruby/gems/3.3.0/cache/power_assert-2.0.3.gem root@fum:/etc/schleuder#
Sure it does.
This is part of your problem. Partially-upgraded systems are not really
supported by Debian. Even though we *try* to specify versioned
dependencies that force the required upgrades, the number of different
configurations in a partially-upgraded system is infinite and it's
impossible to catch all cases.
You cannot remove ruby and still expect schleuder to work at all. :)
Those should not be a problem.
This is the other half of your problem. Debian packages do not ship
*.gem files; this means these were all installed manually and could
cause dependency problems. Having gems installed is not a problem in
itself, but if you install arbitrary versions, those can cause conflicts
with the Debian packages, which were tested together in the specific
versions shipped in a Debian release. When you combine these with a
half-upgraded system, there are a huge number of things that can go
wrong.
I suggest you:
- remove all gems. you want to basically:
- remove /var/lib/gems/3.3.0/* (but not /var/lib/gems/3.3.0 itself)
- remove everything under the following directories that are not
installed by a Debian package:
- /usr/share/rubygems-integration
- /usr/lib/x86_64-linux-gnu/rubygems-integration
- /usr/lib/ruby/gems/3.3.0
- fully upgrade your system to Debian stable
With that done, schleuder should just work.
Surely it should still be possible to accurately transcribe upstream dependencies into the debian/control file? I was listing all the packages that apt thinks depend on ruby. I didn't type "yes" and actually remove ruby, I'm not a *complete* idiot. :) You'll notice that these are cached gems; they were most likely created by running `gem pristine` to fix the earlier issues. I have never manually installed a gem on this machine. Everything *not* installed by some debian package? That sounds painful. Is there a tool for that? I'll try this in the new year, when I'll have time to deal with the knock-on breakage. Thanks again, A
It is, but upstream dependency metadata is not perfect either. cruft-ng
It seems the root cause was that the copy of thin 1.8.2 that was installed on my machine required ruby-rack <3 at runtime, but after force-reinstalling the same .deb it now permits ruby-rack <4, which fixed the issue. It seems at some point the runtime dependencies of thin 1.8.2 were bumped and either the version number wasn't incremented or the stale dependencies were cached. Thanks for the help, A