【Ruby基础01】windows和termux中搭建Ruby开发环境

windows下环境搭建

railsinstaller官方git地址

  • 按照文档安装·gitnodejsyarn,安装教程百度一下。railsinstall可以从release页面下载最新版本4.1.0

image.png

  • 安装完成如下

image.png

安装RubyMine

  • 下载RubyMine

RubyMine下载地址

image.png

  • 安装激活

下载文件,按照里面的流程激活即可。

激活文件下载地址

  • 新建项目

image.png

新建一个ruby文件

image.png

image.png

image.png

安卓中环境搭建

安装Termux

  1. 安装Termux,建议使用基于TermuxZeroTermux
  • ZeroTermux的github地址

  • ZeroTermux下载地址

打开下载地址,安装最新版即可

image.png

  1. 安装ruby
apt update       # 同步
apt upgrade      # 升级
apt install ruby  # 安装ruby

安装完成,输入ruby -v查看ruby是否安装成功
1718420141045.png

  • 切换gem

gemRuby的包管理器,类似pythonpip。为了下载gem更快,这里我们使用国内源。

gem sources --remove https://rubygems.org/ --add https://gems.ruby-china.com`
gem sources -l  # 查看gem源

会输出如下结果,则切换成功

1718421861264.png

  1. 安装rails
  • 安装nokogiri
    直接安装rails,会出现nokogiri安装不成功的问题,需要先安装nokogiri
apt install build-essential  # 安装编译相关的包
apt install libxml2 libxslt
gem install 'nokogiri:1.16.6' --platform=ruby -- --use-system-libraries # 由于rails中使用1.16.6版本,这里我们指定版本安装
  • 安装git

apt install git安装git

  • 安装rails

使用gem install rails安装rails,安装完成后,输入rails -v验证是否安装成功。
image.png

  • rails冒烟测试

rails new blog简单新建一个应用,会出现如下的问题。

1718423674818.png

这里提示tzinfo-data这个gem安装有问题,我们解决一下这个问题。

cd blog   # 进入目录
apt install vim   # 安装vim编辑器
vim Gemfile  # 编辑

i进入编辑模式,注释原有的,添加gem "tzinfo-data",按ESC退出编辑模式,输入:wq保存文件。

image.png

再执行bundle install,就会发现没问题了。

image.png

rails server启动服务,默认端口为3000

1718423411054.png

再浏览器中输入http://127.0.0.1:3000,看到如下页面则测试成功。

image.png

下载安装Acode编辑器

Acode是一个安卓端的代码编辑器,配合termux可以很方便的运行很多种语言的代码。风格类似pc的vscode编辑器。

  • 应用下载

在后台回复【/q acode】获取下载地址。

  • acode环境配置

点击左侧插件,安装AcodeX-TerminalCode Runner

1718425929013.png

  • termux中安装acodex-server
curl -sL https://raw.githubusercontent.com/bajrangCoder/acode-plugin-acodex/main/installServer.sh | bash
  • 安装完成后启动acodex-server

image.png

  • 打开acode,新建一个文件hello.rb,输入如下内容,再保存,点击右上角三角按钮执行,再点击RUBY,再点击”确认“即可。没有和termux建立连接时,需要点执行按钮操作2次。
puts "hello ruby"

1718426682630.png

本文由【产品经理不是经理】gzh 同步发布,欢迎关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/855812.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 读取Excel导入数据库,形成树状结构

最近开发过程中遇到一个Excel的导入的功能,因为导入的数据结构具有层次结构,经过一番研究,最终得以实现,所有写下该文章,记录过程,供以后参考。 下图是导入Excel的数据结构: 使用POI解析Excel,数据封装然后进行入库。下面是核心代码。 @Overridepublic KnowledgeBase…

示例:WPF中如何不卡顿页面的情况加载大量数据

一、目的:在开发过程中经常会遇到一个ListBox列表里面需要加载大量数据,但是加载过程中会假死卡顿影响用户体验,或者是你的主页面加载了大量控件,或者切换到一个有大量元素的页面都会有这种体验,因为加载的都是UI元素不…

基于matlab的RRT算法路径规划(附带案例源码)

文章中的所有案例均为博主手动复现,用于记录博主学习路径规划的过程,如有不妥,欢迎在评论区交流 目录 1 标准RRT1.1 算法原理1.2 演示 2 GBRRT2.1 算法原理2.2 算法演示 3 RRT-STAR3.1 算法原理3.2 算法演示 4 RRT-CONNECT4.1 算法原理4.2 算…

流量有限、日活低的APP适合对接广告变现吗?

APP广告变现,总用户数和日活用户(DUA)是衡量APP价值和影响力的重要指标之一。 APP DUA过万,尤其是大几万时,通常具备了商业化价值,适合接入广告变现。日活1W意味着每天有1万名用户在使用这款应用&#xff…

了解指标体系1:指标是大数据开发中的关键要素

在大数据开发的过程中,指标体系是一个至关重要的概念。本文将介绍什么是指标,为什么它们如此重要,以及如何在大数据项目中有效地构建和应用指标体系。 目录 什么是指标?指标的类型为什么指标如此重要?如何构建有效的指…

Leetcode Java学习记录——代码随想录链表篇

文章目录 链表定义移除链表的倒数第n个结点判断[列表是否有环](https://leetcode.cn/problems/linked-list-cycle-ii/description/)报错java.lang.StackOverflowError空指针异常 链表定义 public class ListNode{int val;ListNode next;//三种构造函数public ListNode(){}publ…

Swift开发——存储属性与计算属性

Swift语言开发者建议程序设计者多用结构体开发应用程序。在Swift语言中,结构体具有了很多类的特性(除类的与继承相关的特性外),具有属性和方法,且为值类型。所谓的属性是指结构体中的变量或常量,所谓的方法是指结构体中的函数。在结构体中使用属性和方法是因为:①匹别于结…

宋老师讲课技巧笔记

1 如何发声 •发声的重要性 •上课三要素: 外表, 声音, 板书(PPT) •如何科学发声 ​ 反例:如果只用喉咙, 会很累 ​ 要点:发声从胸口开始进行发声 ​ 升级: 从腹腔,到胸膛,到喉咙发声, …

每日一练:攻防世界:miao~

给了一张jpg图片 没发现什么特别,放到winhex中查看也没思路。 放到kali里面foremost分离文件试试,结果分离出个wav音频文件 直接放到 audycity看看频谱图 发现字符串,但是没有其他信息。可能是密钥之类的。到这里我就卡住了,看…

镜像拉取失败:[ERROR] Failed to pull docker image

问题描述 执行 bash docker/scripts/dev_start.sh 命令提示错误: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post “http://%2Fvar%2Frun%2Fdocker.sock/v1.45/images/create?fromImageregistry.b…

微信小程序-上拉加载和下拉刷新

一.上拉加载 微信小程序的上拉加载使用onReachBottom(),写在.js文件里面的Page方法里面。 onReachBottom(){//上拉自动更新到4,5,6wx.showLoading({title: 数据加载中...,})setTimeout(()>{const lastNumthis.data.numList[this.data.nu…

webpack 中 require.context() 的用法

一、什么是 require.context It allows you to pass in a directory to search, a flag indicating whether subdirectories should be searched too, and a regular expression to match files against. – webpack 官方说明 一个 webpack 的 api ,通过该函数可以获…

类加载机制-打破双亲委派机制

文章目录 类加载机制打破打破双亲委派机制例子1例子2 类加载机制 类加载机制 打破打破双亲委派机制 例子1 JDBC的加载机制 Driver 接口是在rt.jar 包里定义的 public interface Driver {Connection connect(String url, java.util.Properties info)throws SQLException; }…

Java中Cookie的用法

Cookie是一段不超过4KB的小型文本数据,由一个名称(Name)、一个值(Value)和其它几个用于控制Cookie有效期、安全性、使用范围的可选属性组成。 Expires(过期) 设置Cookie的生存期。有两种存储类…

Ubuntu网络管理命令:nslookup

安装Ubuntu桌面系统(虚拟机)_虚拟机安装ubuntu桌面版-CSDN博客 nslookup命令主要用来查询域名信息,实际上主要是将域名转换为相应的IP地址,或者将IP地址转换成相应的域名。nslookup命令为用户提供了两种工作模式,分别…

删掉一个元素以后全为1的最长子数组

class Solution { public:int longestSubarray(vector<int>& nums) {int lennums.size();int left0,right0,cnt00;while(right<len){if(nums[right]0){cnt0;}right;if(cnt0>1){if(nums[left]0){cnt0--;}left;}}return right-left-1;} };

matlab线性多部法求常微分方程数值解

用Adamas内差二步方法&#xff0c;内差三步方法&#xff0c;外差二步方法&#xff0c;外差三步方法这四种方法计算。 中k为1和2. k为2和3 代码 function chap1_adams_methodu0 1; T 2; h 0.1; N T/h; t 0:h:T; solu exact1(t);f f1; u_inter_2s adams_inter_2steps(…

B类IP介绍

一、B类ip给谁用&#xff1a; 城域网用的大多就是B类地址。 二、基本介绍 ip地址范围 - 理论范围 128.0.0.0 ~ 191.255.255.255&#xff1a;10000000 00000000 00000000 00000000 ~ 10111111 11111111 11111111 11111111 - 实际&#xff08;正常情况&#xff09;可用地址范围…

2024-6-19(沉默springboot)

1.spring开启事务支持 事务在逻辑上是一组操作&#xff0c;要么执行&#xff0c;要不都不执行。主要是针对数据库而言的&#xff0c;比如说 MySQL。 业务场景eg: public void savePosts(PostsParam postsParam) {// 保存文章save(posts);// 处理标签insertOrUpdateTag(posts…

【C++】生成随机数

生成 l , r l,~r l, r 范围内的随机数 C o d e Code Code #include <iostream> #include <random> using namespace std;int get_rand(int l, int r) {random_device rd; // 用于获取随机数种子的设备mt19937 gen(rd()); // 以随机数种子初始化随机数生成器unif…