iT邦幫忙

2023 iThome 鐵人賽

DAY 4
0
自我挑戰組

我的日常學習雜記與筆記整理系列 第 4

Day - 4 Ruby 安裝紀錄 - 對 Dependencies 的疑惑

  • 分享至 

  • xImage
  •  

安裝Ruby 過程中會安裝的相依套件(Dependencies)

之前學過安裝Ruby On Rails 的步驟,但沒有仔細研究過跟著Ruby 安裝的相依套件,因此紀錄一下做個基本的認識。
目前尚未研究BingAI的回答與來源文章,若之後想再進一步了解時,再回來翻閱這篇記錄做修正。

至於會想紀錄的原因,是因為在另外找尋安裝Ruby的相關文章的時候,發現了一些文章如 How to Install Ruby on Rails with RVM in Ubuntu 22.04或是 How To Install Ruby on Rails with RVM on Ubuntu 20.04 | DigitalOcean 等文中提到安裝RVM之前要先安裝的相依套件(Dependencies):

# Install the required dependencies for building Ruby:
$ sudo apt install curl gpg2 gcc make libssl-dev libreadline-dev zlib1g-dev libsqlite3-dev

因為和我記得的做法不太一樣,所以這次在按照以前的安裝步驟時有注意看 Terminal 中的每行訊息,Ruby 在一開始安裝時會跑一段:

Updating system...
Installing required packages: g++, gcc, autoconf, automake, bison, libc6-dev, libffi-dev, libgdbm-dev, libncurses5-dev, libsqlite3-dev, libtool, libyaml-dev, make, pkg-config, sqlite3, zlib1g-dev, libgmp-dev, libreadline-dev, libssl-dev..................................
Requirements installation successful.

利用 Bing AI (或 ChatGPT) 列出Ruby 會安裝的相依套件:

請列出安裝ruby的同時會安裝的相依套件 並說明套件與Ruby相關的用途: g++, gcc, autoconf, automake, bison, libc6-dev, libffi-dev, libgdbm-dev, libncurses5-dev, libsqlite3-dev, libtool, libyaml-dev, make, pkg-config, sqlite3, zlib1g-dev, libgmp-dev, libreadline-dev, libssl-dev..................................
BingAI回答如下:
  1. g++gcc

這兩個都是GNU編譯器集合(GCC)的一部分,用於編譯和鏈接程式。
在安裝Ruby時,它們被用來從源碼編譯Ruby。

  1. autoconf

一個產生可以自動配置軟體源碼包的shell腳本的工具。
在安裝Ruby時,它用於生成配置腳本。

  1. automake

這是一個工具,用於自動生成符合GNU編碼標準的Makefile.in文件。
在安裝Ruby時,它用於生成Makefile。

  1. bison

這是一個通用的解析器生成器,可以將帶註釋的上下文無關文法轉換為確定性LR或廣義LR(GLR)解析器。
在安裝Ruby時,它被用來生成解析器。

  1. libc6-dev

這個套件包含了標準C庫的開發文件(頭文件和靜態庫文件)。
在安裝Ruby時,它提供了必要的頭文件和庫以供編譯。

  1. libffi-dev

這個套件包含了外部函數接口庫(libffi)的開發文件。
在安裝Ruby時,它被用來支援Ruby FFI(Foreign Function Interface)擴展,該擴展允許Ruby程式直接呼叫動態鏈接庫中定義的函數。

  1. libgdbm-dev

這個套件包含了GNU dbm數據庫函數庫的開發文件。
在安裝Ruby時,它被用來支援Ruby GDBM模組,該模組提供了對GNU dbm數據庫的訪問。

  1. libncurses5-dev

此套件包含了ncurses庫(用於終端處理)的開發文件。
在安裝Ruby時,它被用來支援Ruby Curses模組,該模組提供了對ncurses庫的訪問。

  1. libsqlite3-dev

此套件包含了SQLite 3數據庫引擎的開發文件。
在安裝Ruby時,它被用來支援Ruby SQLite3模組,該模組提供了對SQLite 3數據庫的訪問。

  1. libtool

一個通用庫支援腳本,可以隱藏使用各種系統產生共享庫的複雜性。
在安裝Ruby時,它被用來處理共享庫。

  1. libyaml-dev

這個套件包含了LibYAML庫(一種YAML解析器和發生器)的開發文件。
在安裝Ruby時,它被用來支援Ruby Psych模組,該模組提供了對YAML數據格式的訪問。

  1. make

這是一種工具,可以自動決定哪些部分的程式需要被重新編譯。
在安裝Ruby時,它被用來從源碼編譯Ruby。

  1. pkg-config

這是一種腳本,用於管理在編譯時使用的庫。
在安裝Ruby時,它被用來確定需要的庫和頭文件的位置。

  1. sqlite3

這是一種在磁盤上保存數據的軟體庫,提供了可嵌入的零配置SQL數據庫引擎。
在安裝Ruby時,它被用來支援Ruby SQLite3模組。

  1. zlib1g-dev

此套件包含了zlib壓縮庫的開發文件。
在安裝Ruby時,它被用來支援Ruby Zlib模組,該模組提供了對zlib庫的訪問。

  1. libgmp-dev

此套件包含了GNU多精度算術庫(GMP)的開發文件。
在安裝Ruby時,它被用來支援Ruby的大數運算。

  1. libreadline-dev

此套件包含了GNU Readline庫的開發文件。
在安裝Ruby時,它被用來支援Ruby Readline模組,該模組提供了對Readline庫的訪問。

  1. libssl-dev

此套件包含了OpenSSL庫(一種強大的安全套接字層密碼庫)的開發文件。
在安裝Ruby時,它被用來支援Ruby OpenSSL模組,該模組提供了對OpenSSL庫的訪問。

也想了解若不安裝這些套件會有何影響?
https://ithelp.ithome.com.tw/upload/images/20230919/201403776b3vQaSbnd.jpg


上一篇
Day - 3 筆記軟體 與 Ruby 安裝紀錄 for Windows (一)
下一篇
Day - 5 常用指令整理
系列文
我的日常學習雜記與筆記整理30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言