在Ubuntu上使用Ruby和MySQL

在Ubuntu上使用Ruby和MySQL

💡 原文英文,约2800词,阅读约需10分钟。
📝

内容提要

本文介绍了在Ubuntu上安装和配置Ruby和Ruby on Rails以支持MySQL的步骤。更新操作系统,安装软件包和库,使用asdf安装和配置Ruby,更新Ruby Gems,安装MySQL Ruby Gem并编写连接和验证MySQL数据库的程序,最后安装Rails并配置MySQL 8。

🔎

延伸解读

处理 dpkg 中断:man-db 服务问题

在更新 Ubuntu 时,可能会遇到 dpkg 被中断的错误,提示需要手动运行 'sudo dpkg --configure -a'。文章指出,这可能是由于 man-db 服务未运行导致的。执行该命令后,如果看到 man-db.service 是禁用或静态单元,可以尝试用 'sudo systemctl start man-db.service' 启动它。这提醒我们,在安装软件前确保包管理器和相关服务正常,能避免后续步骤失败。

使用 asdf 管理 Ruby 版本的优势

文章选择 asdf 作为多版本管理器来安装 Ruby 3.3.0,而不是直接使用系统包。这样做的好处是可以在同一台机器上安装多个 Ruby 版本,并通过 'asdf global' 或 'asdf local' 灵活切换。配置 .bashrc 和 .asdfrc 后,asdf 能自动识别项目中的 .tool-versions 文件,适合需要不同 Ruby 版本的项目。此外,asdf 还支持 Node.js 等插件,方便统一管理。

连接 MySQL 的 Ruby 程序要点

文章提供了两个示例程序:mysql_connection.rb 用于验证连接,mysql_version.rb 用于查询版本。它们都使用 mysql2 gem,并展示了基本的连接参数(主机、用户名、密码、数据库)。注意,程序使用了 begin-rescue-ensure 结构来捕获异常并确保关闭连接,这是健壮的做法。如果连接失败,会输出错误号和 SQL 状态,有助于排查问题。运行前需确保 MySQL 8 已安装并创建了对应的用户和数据库。

为 MySQL 配置 Rails 应用的步骤

安装 Rails 7.1.3 后,使用 'rails new myapp -d mysql' 可以生成一个默认使用 MySQL 的 Rails 应用。这会自动配置 Gemfile 和 database.yml,但数据库连接信息(如用户名和密码)可能需要手动编辑 config/database.yml。文章提到,如果 MySQL 设置了用户名和密码,必须修改该文件。此外,确保已安装 libmysqlclient-dev 和 mysql2 gem,否则 Rails 应用可能无法连接数据库。

❓

Q&A

在Ubuntu上安装Ruby和Rails以支持MySQL,需要先安装哪些依赖包?

需要安装以下先决软件包:git-core、zlib1g-dev、build-essential、libssl-dev、libreadline-dev、libyaml-dev、libsqlite3-dev、sqlite3、libxml2-dev、libxslt1-dev、libcurl4-openssl-dev、software-properties-common、libffi-dev。使用命令:sudo apt-get install -y git-core zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev software-properties-common libffi-dev

如何解决Ubuntu上dpkg被中断的问题?

运行命令:sudo dpkg --configure -a 来修复。如果man-db服务未启动,可以运行:sudo systemctl start man-db.service 来启动它。

如何使用asdf在Ubuntu上安装Ruby 3.3.0?

首先克隆asdf仓库:git clone https://github.com/excid3/asdf.git ~/.asdf。然后配置.bashrc文件,添加:echo '. "$HOME/.asdf/asdf.sh"' >> ~/.bashrc 和 echo '. "$HOME/.asdf/completions/asdf.bash"' >> ~/.bashrc。接着添加Ruby插件:asdf plugin add ruby。最后安装Ruby 3.3.0:asdf install ruby 3.3.0,并设置为全局版本:asdf global ruby 3.3.0。

如何安装mysql2 Ruby Gem并验证与MySQL 8的连接?

首先安装MySQL开发库:sudo apt-get install -y libmysqlclient-dev。然后安装mysql2 gem:gem install mysql2。编写一个Ruby程序(如mysql_connection.rb)来连接数据库,示例代码包括require 'mysql2',创建Mysql2::Client.new连接,并处理异常。运行程序:ruby mysql_connection.rb,如果成功会输出“Connected to the MySQL database server.”。

如何检查已安装的MySQL版本?

可以编写一个Ruby程序(如mysql_version.rb),使用mysql2 gem连接数据库,执行查询:SELECT version() AS version,然后遍历结果集输出版本号。运行程序:ruby mysql_version.rb,在Ubuntu上通常会返回类似“8.0.35-0ubuntu0.22.04.1”的版本信息。

如何在Ubuntu上安装Rails 7.1.3并为MySQL 8配置新应用?

使用命令安装Rails:gem install rails -v 7.1.3。然后检查版本:rails -v,应返回Rails 7.1.3。创建新应用:rails new myapp -d mysql。如果需要配置MySQL用户名和密码,编辑config/database.yml文件。

🏷️

标签

➡️

继续阅读