LoginSignup
0
0

More than 1 year has passed since last update.

OpenSSL 3.0とNode 18.xの依存関係のせいでハマった

Last updated at Posted at 2023-05-01

背景

数年前に構築したrustとvueの開発環境を、また触ってみようと思って動かしてみたら動かなくて困ったときのお話。
主たる原因は、Opensslが2.0->3.0になったことによって、もろもろの依存関係が解決できなくってしまっていた事に依るものである。
ここでは、その解決方法をまとめておく。万人に適用できるかは不明なので悪しからず。

環境

  • win10のOS上にdocker desktopをインストールし、コンテナを立ち上げている。
  • コンテナイメージは、dockerfileを用いてdocker-composeでビルドしている。
  • コンテナイメージにはubuntuを使用している。
  • ubuntu上に、nodeとrustをインストールし開発環境を構築している。

現象

OpensslとNode18間で依存関係が解決できない。(npm run serveできない。yarnでも同様。)

やったこと

dockerfileの中身を以下変更した。
libssl(2行目)とnode(最後の行)の変更以外は、本題とはあまり関係ありません。

解決前 解決後 理由
ubuntu 21 ubuntu 23 気分
libssl-dev libssl-dev=3.0.8.-1ubuntu1.1 イメージビルド時のapt-getで勝手に更新されたくないため固定
rustup install nightly rustup install nightly-2023-4-25 同上(stablehではないのは開発環境の都合)
記述なし cargo install cargo-check; cargo update crateの依存関係を解決するため
apt-get -y node curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash; . ~/.nvm/nvm.sh && nvm install 16.20.0 openssl 3.0とNode 18.xの依存関係を、nodeのバージョンを下げて解決するため

openssl 3.0とNode 18.xの依存関係を、解決する方法はいくつかありますが、
情報をあさってもイカした方法がなかったので、使えるNodeバージョンを指定するという方法が無難でした。

イカしてない方法:Opensslをダウングレードするとか、nodeで--openssl-legacy-providerをつけるとopenssl3.0の古い暗号モジュールを使えるようにするとか脆弱性に成り得る。

構成管理をしっかりやれば良いだけなんですけどね。。。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0