【解決方法】You don’t have write permissions for the /var/lib/gems/2.7.0 directory【Ruby, Linux】
このページを参考にしました
RubyとSinatraではじめる Webアプリケーション開発の教科書
という書籍に沿っています
raspbery os 64bit
まずRubyを削除
$sudo apt remove ruby
システムをアップデート
$sudo apt update
$sudo apt upgrade
ruby をビルドするのに必要なものをインストール
$ sudo apt install git curl libssl-dev libreadline-dev zlib1g-dev autoconf bison build-essential libyaml-dev libreadline-dev libncurses5-dev libffi-dev libgdbm-dev
rbenv をインストール
$ curl -sL https://github.com/rbenv/rbenv-installer/raw/main/bin/rbenv-installer | bash -
パスを通す
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc
$ source ~/.bashrc
rubyをインストール
$rbenv install -l
で見、適当なバージョンをインストール
$rbenv install l 3.1.4
時間がかかる
2024-07-18追記
$rbenv global 3.1.4
作業ディレクトリ
$mkdir bbs
$vi Gemfile
公開してよいのかわかりませんが
怒られたら削除します
$tar zxvf bbs.tar.bz2
Gemfileを作る
ーーー
# frozen_string_literal: true
source "https://rubygems.org"
gem "sinatra"
gem "puma"
gem "rake"
gem "activerecord"
gem "sqlite3"
gem "activesupport" , "~> 7.1.3"
gem "rackup", "~> 2.1"
ーーー
$gem install bundler
$bundle config set path vender/bundle
$bundle init
$bundle install
$sqlite3 bbs.db < dbinit.sq3
$bundle exec ruby dbtest.rb -o 0.0.0.0 -e production
ルーターの設定(aterm)
aterm.me
ポートマッピング設定に行き
優先度
1
LAN側ホスト
192.168.10.111
などとRaspberry pi を指定する
変換対象ポート
1089
などと公開ポート
プログラムの公開ポート
4567
指定する
これでなんとインターネットからアクセスできた
http://111.111.111.111(ipアドレス):1089/
どうやっても公開されず悩んだが -e productionでうまくいった
不思議寺縁起の投票システムを作ろうと思っています
できれば公開したい
サニタイズ、セキュリティーの問題など怖さもあるが
なにかやった感があって嬉しかったので記事にしました
0 件のコメント:
コメントを投稿