Ruby on Rails框架(1)-安装全攻略
序
关于Rails的三句箴言
(1)DRY:Don’t Repeat Yourself(不要重复你自己)
- rails的开发理念,不要用你的代码不停的重复,rails框架给开发者提供了一套非常完善的支持,让你在很多地方,只需要短短几行代码,就能实现非常强大的功能;
(2)约定大于配置(约定优先原则)Convention Over Configuration
- rails框架并不会出现传统框架里面例如xml这样的配置文件,而将大家已经知道并已经成为习惯的内容,不进行显示的配置,只要我们去默认使用就可以了,这样一来就极大的简化了框架的配置工作,能实现我们用更少的代码来实现应用的程序变为可能;
(3)对于web应用来说,REST是最好的
(一) 开发环境的选择
给初学者的建议
- 如果我们没有至少5年以上的rails开发经验,我们务必不要使用windows操作系统去进行rails框架的开发,否则你会浪费非常多的时间在解决各种奇奇怪怪的问题上,比如说ruby的问题,gem的问题等等,非常的不值得,这些时间我们完全可以拿来学习rails框架
1.1 为什么不使用windows
- rails框架对windows非常不友好,各种的学习资料和问题解答,还有库的支持都非常的有限,并且对于很多rails推荐使用的工具,比如说命令行,windows的命令行是不强大的;
1.2 选择适合自己的开发环境
Mac OS
Linux
这里jacky使用的centos7开发环境,多年的经验告诉jacky ,centos系统还是很不错的,生产环境我们肯定是用云服务器了,非生产环境我们用VMware Workstation软件在windonw上安装一个centos7系统,具体如何安装虚拟机,网上百度即可,红帽的镜像网上下载即可;
(二)安装 ruby
jacky说,ruby可不如java和python好安装,不同系统,不同版本,都可能会遇到这样那样的问题,这里jacky就只跟大家分享centos7的安装,如果信得过jacky的人,jacky也建议大家使用centos7系统,这样也可以跟着jacky一步一步来安装;
- 网上安装的方法方式太多,这里jacky建议大家还是下载ruby官网的安装包到本地,解压,编译,安装,一步一步老老实实的安装
(1)ruby官网下载最新ruby安装包
http://www.ruby-lang.org/en/downloads/
(2)源码安装
$ tar -xvzf ruby-2.5.3.tgz
$ cd ruby-2.5.3
$ ./configure
$ make
$ sudo make install
$ruby -v
ruby 2.5.3……
大部分朋友安装到./configure命令后可能会报错,那是因为linux系统下的ruby安装是要依赖gcc编译器(什么是gcc自行百度),所以我们要执行下面的命令:yum -y install gcc 然后在重新执行命令就可以了
(三)RubyGem的安装和使用
3.1 Gem源
Gem 是管理相关软件库的东西,可以给rails框架提供软件包,用gem 安装 rails 有可能会出现问题,发生超时或连接错误等等,90%安装不成功的原因都是gem源的问题
Gem源是什么
Gem将所有的软件包放置的平台叫做Gem源,我们更新或者安装各种Gem包的时候,都需要去连接这个Gem源,Gems源的网站为:rubygems.org ,我们下载rails的时候,也是去这个网站去查找和下载的,因为这个网站不是国内的,我们国内用户在访问这个gem源的时候会非常慢,有的时候会连不上,会导致安装的时候出现问题,那么解决的办法就是更换Gem源
我们在国内使用最稳定的是ruby-china镜像源,网站是 https://gems.ruby-china.com/
3.2 更改Gem源
- (1)第1步:用l命令看一下我们目前有的Gem源;
gem sources --l
-(2)第2步:安装ruby-china镜像源
这里jacky强调的是,新建镜像源一定要移除原有的镜像源
gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
(四)Rails的安装
大部分的教程或者网络上的资料告诉大家rails的安装是非常简单的,只要使用一条命令就可以了(gem install rails),如果有报错,那我们就在命令前面加一个sudo就可以了(sudo gem install rails)就可以了(如果有些朋友不能用sudo命令可以试一下这个代码:alias sudo=‘sudo env PATH=$PATH’),但jacky说实际上真让我们安装rails的时候,一定会遇到这样或者那样的问题,但是为什么教程和资料上说的就是这样的简单呢;jacky认为是两个原因:第一个原因是rails安装的问题太多,有些人也讲不清或者不想讲;第二个原因是用rails的人,一定不会是第一次就选择rails框架,大家都会有其他编程语言框架的基础,在安装其他编程语言框架的时候,有些rails框架
- 我们的最终目的是用一条命令,就完美安装rails (gem install rails或者sudo gem install rails),但使用这条命令我们会遇到这样或者那样的问题,出现的问题都是我们缺少依赖包或者依赖配置,这里jacky给大家规整一下出现的问题,并给出解决方案;
对下面的依赖包的特别说明(必看):下面的依赖包不是必须要安装的,如果我们sudo gem install rails 不报错,我们就不用安装下面的安装包了,如果我们遇到了报错,大概率是jacky总结的下面的几个或者全部安装包没有安装
4.1 依赖包1:安装build essentials
yum groupinstall "Development Tools"
yum install -y gcc g++ kernel-devel
sudo yum install build-essential libopenssl-ruby ruby2.5.3-dev
上述这一条命令,我们就把许许多多rails的依赖包打包安装了
4.2 依赖包2:安装libxml2
yum -y install python-devel
yum install libxml2(如果不成功,我们要选择手动安装,就是下载安装包安装,这里略,大家自行百度)
4.3 依赖包3:安装openssl和zlib
这里要说就篇幅过长,可以参考下面这篇文章:
https://www.cnblogs.com/both/p/8875535.html
- 以上我们就可以安装rails框架了
sudo gem install nokogiri
gem install rails
(五)使用Rails框架创建应用
5.1 开发环境的选择
- 对于应用程序开发来说,有一个好的IDE(集成开发环境),会大大提升我们的开发效率,这里jacky推荐的IDE是 rubymine;
如何在linux系统安装rubymine大家自行百度
5.2 创建Rails应用程序
5.2.1 使用系统自带的终端进行操作
cd Documents
rails new 你的项目名(工程名) --skip-bundle
bundle install
在运行bundle install命令之前,要修改Gemfile文件,bundle install的作用是让bundle根据gemfile的内容安装所有配置好的gem包,相当于一个命令就将rails所需要的配置包根据相应的版本安装好了
这里大家在运行bundle install 时可能会报错:An error occurred while installing sqlite3 (1.3.13), and Bundler cannot continue.这时我们运行下面的这条命令就可以了: yum -y install sqlite*
5.2.2 Rails框架的目录结构
app:它是rails框架的核心文件,包括模型、控制器、视图,已经前端等等的核心代码都在这个文件夹里,非常的重要,之后的学习过程我们的开发90%的时间都是在app文件夹里进行操作的;
- app下的assets文件夹:它是rails的应用资源文件夹,比如工程使用的一些静态文件都在这个文件夹里
config:它是应用的配置目录,包含比如数据库的配置、运行环境的配置、以及路由的配置等,我们在开发的过程也会经常的使用;
test:它存放了所有rails应用的测试代码,那关于rails的测试是rails开发一个比较重要的内容
lib和vendor:存放项目需要的第三方库,比如我们自己写的项目内部公用的接口,或javascripts接口等等都可以放在这个文件夹里
Gemfile:它配置了这个项目所有依赖的gem包
5.2.3 启动Rails框架
rails server
- 这时,我们用命令运行rails服务时可能会报错,Could not find a JavaScript runtime. See https://github.com/rails/execjs for a list of available runtimes.(ExecJS::RuntimeUnavailable),我们只要安装node.js即可
1.下载node.js
curl --silent --location https://rpm.nodesource.com/setup_7.x | bash -
2.yum安装node.js
yum install -y nodejs
3.查看node.js版本
node -v
如何判断rails工程是否运行正常
- 浏览器显示如下页面
- 浏览器显示如下页面
Ruby on Rails框架(1)-安装全攻略的更多相关文章
- TestLink安装全攻略
TestLink安装全攻略 此文章转自该链接--http://www.cnblogs.com/Tcorner/archive/2011/07/26/2117296.html 安装前准备 需要下载xam ...
- 织梦DEDECMS小说模块使用和安装全攻略
转之--http://www.51dedecms.com/news/dedecms/2012/0223/3380.html 小说模块功能很强大,可以用他做小说或者漫画站.他们都可以按某章节收费或免费供 ...
- JiaThis WordPress分享插件安装全攻略
WordPress 是一个功能非常强大的博客系统,插件众多,易于扩充功能.安装和使用都非常方便.目前 WordPress 已经成为主流的 Blog 搭建平台.按照下面的方法,只需简单几步,就可轻松地将 ...
- linux下php-5.4.8.tar.gz编译安装全攻略
首先安装基础依赖组建,注:这些依赖组建也是LINUX+PHP+MYSQL+APACHE+NGINX+MEMCACHED时必要的系统组件 LANG=C yum -y install gcc gcc-c ...
- node.js安装全攻略
node.js学习也有近一年之久了,自开始以来,能遇到各种问题,就拿安装来说,总能遇到稀奇古怪的问题,但每次谷歌,或者百度,都能找到解决办法,逐渐也就养成了百度或者谷歌的毛病! 正常安装 第一步:下载 ...
- Windows Server 2008驱动安装全攻略
安装设备驱动程序原本是一件非常简单的事情,很多驱动程序在安装的时候我们只要不停单击“下一步”按钮,就能让驱动程序顺利地在对应计算机系统“落户”;不过,当身边的计算机系统升级为Windows Serve ...
- 通过Ruby On Rails 框架来更好的理解MVC框架
通过Ruby On Rails 框架来更好的理解MVC框架 1.背景 因为我在学习软件工程课程的时候,对于 MVC 框架理解不太深入,只是在理论层面上掌握,但是不知道如何在开发中使用 MVC ...
- Ruby on Rails框架开发学习
学习地址:http://www.ixueyun.com/lessons/detail-lessonId-685.html 一.课程概述 软件开发在经历了面向过程编程的阶段,现在正大行其道的是敏捷开发, ...
- Android-x86虚拟机安装配置全攻略
转自Android-x86虚拟机安装配置全攻略 注:这里安装从简,具体请参考虚拟机Vmware安装运行安卓4.0详细教程 Android-x86虚拟机安装配置网上有很多,但是全部说明白的确不多,希望这 ...
随机推荐
- ConsoleLoggerExtensions.AddConsole(ILoggerFactory)已过时代码修复
0x00.问题 netcoreapp2.2环境下, Startup.cs 代码配置如下 public void Configure(IApplicationBuilder app, IHostingE ...
- linux ubuntu-16.04-配置java1.8和Tomcat8
前言 第一次使用linux ubuntu16.04 服务器,所以做一下常用配置的记录. JDK 1.创建存放jdk的目录 一般在usr/local下创建一个java文件夹 cd /usr/local ...
- C++ | 使用const std::map,map::[]时遇到的一个bug
原函数简化后如下: void fun(const map<int,vector<int>> &mp, int index) { for (auto tmp : mp[i ...
- 能够提高PHP的性能的一些注意事项
1. 如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍.(静态类调用属性和方法,只可以调用静态属性和方法.self::方法名().self::属性名.只有实例化 ...
- Elasticsearch 及 Kibana 安装篇
简介 官网-安装介绍 这里记载了各个软件包的安装方法,Linux Mac Windows-- 本文记载的是在 CentOS 系统安装 Elasticsearch 7.0.0 版本的步骤. 安装 Jav ...
- fatal: 不是一个有效的对象名:'master'。
听说git比svn的branch功能好,所以装了个msysgit玩.执行完了git init操作后想建branch,用git branch develop命令,结果报错,说 fatal: Not a ...
- UNTIY Canvas
一.Canvas 组件 Render Mode(渲染模式) (1)Screen Space-Overlay:2D UI,始终显示在屏幕最前方,适合制作HP,MP等(相当于GUI) (2)Screen ...
- Python学习日记(十六) time模块和random模块
time模块 python表示时间的三种方式:时间戳.元祖(struct_time).格式化时间字符串 三种格式之间的转换: 1.时间戳 就是从1970年1月1日0点0分0秒开始按秒计算的偏移量,时间 ...
- java ArrayList的remove()方法的参数为int和Integer的问题
ArrayList的父类List中,有2个remove重载方法: remove(int index) remove(Object o) 假如参数输入为数字类型,到底是删除值等于该数字的对象还是删除索引 ...
- java安全相关知识
基本概念 JVM:java虚拟机,Java编译程序将生成Java虚拟机上可运行的目标代码,使得Java程序可以再不同平台不加修改的运行.JVM包含完善的硬件架构,主要分为五大模块-类装载器子系统.运行 ...