从决定学习 ruby、Rails 那一刻开始,我就确定我要在 linux 上学习,这一点从未动摇。 然而,具体哪个发行版呢?
我日常用的是 Manjaro,安装 ruby 时很方便,但在装 Rails 时各种错误。随后我干脆买了腾讯云的云服务器,尝试了 CentOS、uBuntu,都是类似的问题:Rails 很难安装成功。
今天我突然试了试 Debian,居然大功告成。Debian 真好:)
然而我日常使用 Manjaro 习惯了,不想把自己的电脑轻易换 OS. 郁闷
[ma@m-z490 ~]$ gem install rails
WARNING: You don't have /home/machao/.local/share/gem/ruby/3.0.0/bin in your PATH,
gem executables will not run.
Successfully installed rails-7.1.3.2
Parsing documentation for rails-7.1.3.2
Done installing documentation for rails after 0 seconds
1 gem installed
[ma@m-z490 ~]$ rails -v
bash: sails: 未找到命令
感谢提醒。
[ma@m-z490 ~]$ PATH="`ruby -e 'puts Gem.user_dir'`/bin:$PATH"
[ma@m-z490 ~]$ gem install rails
Successfully installed rails-7.1.3.2
Parsing documentation for rails-7.1.3.2
Done installing documentation for rails after 0 seconds
1 gem installed
[ma@m-z490 ~]$ rails -v
Rails 7.1.3.2
Debian 之前用了一年半左右,除了包旧点,总体也挺稳定的。 然后是 ArchLinux,非衍生版,使用了将近三年了,挺好的。 至于说安装 Rails,我刚接触的时候是用的 Windows,也都是一次成功,没有别人提到的各种问题。 macOS 默认自带 Ruby,但是我没有用 macOS 写过 Ruby,也很少开机。基本就是 Windows 和 ArchLinux,我觉得 ArchLinux 才是最好的开发者的系统。
在本文中,我们将根据 Distrowatch 的使用统计数据和市场份额,按降序排列截至 2023 年 5 月 18 日的前 10 个最受欢迎的 Linux 发行版。final grade calculator
你这种应该是属于对 linux 不算太熟悉吧 跟 Manjaro 关系不大(虽然我也没用过 Manjaro)
RUBY_VERSION=3.0.0
cat << EOF | sudo tee /etc/profile.d/ruby.sh
export GEM_HOME="\$HOME/.local/share/gem/ruby/$RUBY_VERSION"
export GEM_PATH="\$HOME/.local/share/gem/ruby/$RUBY_VERSION:/usr/local/lib/ruby/gems/$RUBY_VERSION"
export PATH="\$HOME/.local/share/gem/ruby/$RUBY_VERSION/bin:\$PATH"
export RUBY_YJIT_ENABLE=true
EOF
桌面 1:Windows + WSL
桌面 2:Linux Mint
服务器:Ubuntu Server LTS
Mac Mini 吃灰(偶尔开 Sketch 时候用一下)
Macbook Pro 出门备用
感觉比那些衍生版好用,之前或许衍生版方便。但是最近几年 ArchLinux 也有了官网一键安装脚本,安装起来也方便,这个社区本身也很成熟了,所以没必要用衍生版了。我用过比较长一点的衍生版是 EndeavourOS
只要是 linux 安装 ruby,rails 没啥大差别,如果你安装的时候各种报错,那估计换什么发行版都一样。 也可以尝试一下 dev container,标准化的隔离开发环境
NixOS +1
xinyifly@dell ~> nix shell nixpkgs#neofetch --command neofetch
▗▄▄▄ ▗▄▄▄▄ ▄▄▄▖ xinyifly@dell
▜███▙ ▜███▙ ▟███▛ -------------
▜███▙ ▜███▙▟███▛ OS: NixOS 23.11.20240320.f091af0 (Tapir) x86_64
▜███▙ ▜██████▛ Host: Dell Inc. 0PVG6D
▟█████████████████▙ ▜████▛ ▟▙ Kernel: 6.1.82
▟███████████████████▙ ▜███▙ ▟██▙ Uptime: 1 hour, 54 mins
▄▄▄▄▖ ▜███▙ ▟███▛ Packages: 690 (nix-system), 1789 (nix-user), 2 (nix-default)
▟███▛ ▜██▛ ▟███▛ Shell: fish 3.7.0
▟███▛ ▜▛ ▟███▛ Resolution: 1920x1080
▟███████████▛ ▟██████████▙ WM: sway
▜██████████▛ ▟███████████▛ Terminal: alacritty
▟███▛ ▟▙ ▟███▛ CPU: Intel i5-8250U (8) @ 3.400GHz
▟███▛ ▟██▙ ▟███▛ GPU: Intel UHD Graphics 620
▟███▛ ▜███▙ ▝▀▀▀▀ Memory: 3687MiB / 7683MiB
▜██▛ ▜███▙ ▜██████████████████▛
▜▛ ▟████▙ ▜████████████████▛
▟██████▙ ▜███▙
▟███▛▜███▙ ▜███▙
▟███▛ ▜███▙ ▜███▙
▝▀▀▀ ▀▀▀▀▘ ▀▀▀▘
沉下心来好好学习了一下这个 docker 示例以后,坚定成为 docker 党。
Rails dev prod 和 docker-compose 用同一个.env 配置文件。开发环境生产环境完全一致,操作系统 Win Mac Linux 完全无关,升级各种软件环境只要改文本配置。
一次学习,之后完全不在这方面耗任何时间,强烈推荐。
https://world.hey.com/dhh/vscode-wsl-makes-windows-awesome-for-web-development-9bc4d528
DHH 开发环境已经切到 WSL 上了,值得一试
后面又发了一篇: https://world.hey.com/dhh/committing-to-windows-2d6388fd
有提到:
So despite my earlier reservations about giving up on TextMate, I've decided to make Windows my new primary abode. That's Windows with Linux running inside of it as a subsystem (WSL), mind you.
我理解是已经主要在 WSL 上工作了,但是后面也说了没放弃 mac,他们公司基本还是用 mac。
kk@kkar4 ~ cat /usr/lib/os-release
NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo
kk@kkar4 ~ hostnamectl
Static hostname: kkar4
Icon name: computer-desktop
Chassis: desktop ????
Machine ID: 825a9fd4a64a42e28ab77858e6cbfb69
Boot ID: b39c25118c8c42609547471575449da5
Operating System: Arch Linux
Kernel: Linux 6.8.7-arch1-2
Architecture: x86-64
Hardware Vendor: Gigabyte Technology Co., Ltd.
Hardware Model: H81M-DS2-C
Firmware Version: F1
Firmware Date: Wed 2016-07-06
Firmware Age: 7y 10month 3d