天天看點

Ruby環境搭建不完全手冊starting out with Ruby

starting out with Ruby

前言:

本文的目标是隻要高中畢業,具有基本的計算機概念,都能輕松上手的傻瓜版教程。
// 特别是我這種零基礎文科小白
           

基礎概念篇

  1. 我們目前使用的開發語言都是經過封裝和優化的,更接近人類語言的存在,是以我們需要:
    1. 程式運作環境,e.g. Java 的JDK,Ruby和Go的基礎lib
    2. 具備諸如代碼補全、高亮、運作…的編輯器/IDE
    當然也有大神直接用記事本/notepad撸代碼,那種非人類的操作隻可遠觀不可随意模仿
  2. 開發語言,無論Python、Go、Perl、Prolog…最終目的都是通過一系列的邏輯來處理資料,那麼我們需要:
    1. 一個容器可以承載和運作我們的處理邏輯
    2. 一些容器用來儲存我們的資料
    3. 一些路徑可以讓我們控制邏輯去做處理
    4. 一些方式讓我們看到處理的結果
  3. 在了解了這些之後我們了解到需要做以下到準備:
    1. 計算機/伺服器上開發和編譯程式用的環境
    2. 趁手的IDE
    3. 程式運作和部署工具

環境準備篇

  1. 開發環境(以下的手順都以Mac為基礎環境)

    0. Java JDK (somehow bazel 的安裝需要JDK 1.8…emmmm…)

    >https://blog.csdn.net/deliciousion/article/details/78046007

    1. Ruby的安裝
      1. Mac自帶有Ruby,可以檢視ruby版本
        chens-MacBook-Pro:~ chenchen$ ruby --version
        ruby 2.3.7p456 (2018-03-28 revision 63024) [universal.x86_64-darwin17]
                   
      2. ruby的包管理器gem也是預裝過的,可以檢視版本
        chens-MacBook-Pro:~ chenchen$ gem --version
        2.5.2.3
                   
    2. 接下來安裝HomezBrew,這是Mac上的包管理器,類似Notepad++裡面的pluginmanager。

      這玩意同時依賴了Xcode和Ruby,本着要用就用最新的想法(希望能避免好多坑),直接搞最新版。

      這指令我抄的,在指令行裡敲:

      /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 
                 
      一大堆下一步,會有一些需要輸入管理者密碼的地方,用來在系統目錄裡建立一些檔案
      因為這玩意會依賴xcode,是以可能會提示要求裝xcode-select
      果斷自己先手動安裝掉
      chens-MacBook-Pro:~ chenchen$ xcode-select --install
      xcode-select: note: install requested for command line developer tools
                 
      當然,像我臉這麼黑的肯定是安裝失敗了,隻好去Apple developer裡面去下了自己裝

      需要登陸appleId

      https://developer.apple.com/download/more/

    3. 安裝Xcode相關的東西,主要為了編譯各種C++的包
      上一步已經做好了的話,就隻做3和4就好
      1. xcode-select install
        1. 如果失敗了,從app store裡裝一下xcode
        2. 更新一把
        3. 然後重定向xcode:sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
        4. 裝下xcode的license:sudo xcodebuild -license
    4. 安裝protobuf
      1. brew install protobuf

        0. https://blog.csdn.net/u014534808/article/details/80203018

      2. 遇到類似 xxx Permission denied xxx /usr/local/Frameworks的時候:

        0. 可能是這個檔案夾不存在,跑一下

        1. sudo mkdir /usr/local/Frameworks
        2. sudo chown $(whoami):admin /usr/local/Frameworks
        3. 再run一下#1 裡面的 install 指令就好了
    5. 安裝gRPC相關元件
      1. grpc 使用環境

        gem install grpc

      2. grpc 編譯工具

        gem install grpc-tools

    6. 安裝mysql
      1. brew install [email protected] (目前線上環境有5.6和5.7兩種instance,裝5.7也一樣。不過需要自己建my.cnf)
        這個功能貌似已經在新版本裡被幹掉了,需要确認一下是否可以指定安裝版本
      2. 重裝mysql連結庫 mysql2
        由于5x和8x的路徑不一樣,互相又不相容,是以可能需要重裝一遍
        通過

        gem list | grep mysql2

        确定是否存在

        存在就執行第三步否則跳過

      3. 解除安裝目前的mysql2

        gem uninstall mysql2

      4. 安裝mysql2 并指定配置檔案位置

        gem install mysql2 -v '0.4.10' -- --with-mysql-config=/usr/local/Cellar/[email protected]/5.6.42/bin/mysql_config

        其中通過 -v 指定 mysql2 版本,通過 --with-mysql-config 指定mysql配置檔案路徑,這個路徑可能根據安裝包的不同而不同
        由于路徑不同,我們可能還需要把mysql裡面用到的一些應用做超連結
        mysql本尊

        ln -sf /usr/local/Cellar/mysql\@5.6/5.6.42/bin/mysql /usr/local/bin/mysql

        mysql.server

        ln -sf /usr/local/Cellar/mysql\@5.6/5.6.42/bin/mysql.server /usr/local/bin/

        mysqldump

        ln -sf /usr/local/Cellar/mysql\@5.6/5.6.42/bin/mysqldump /usr/local/bin/

        然後驗證一下

        mysql --version

        mysql Ver 14.14 Distrib 5.6.42, for osx10.14 (x86_64) using EditLine wrapper

        這個可能不一樣,以真實安裝為準

      5. 啟動mysql
        mysql.server start
        
                   
      6. 這個安裝過程可能需要重複很多遍,參考這個地方來來回解除安裝MySql
        sudo rm /usr/local/mysql
         sudo rm -rf /usr/local/mysql*
         sudo rm -rf /Library/StartupItems/MySQLCOM
         sudo rm -rf /Library/PreferencePanes/My*
         rm -rf ~/Library/PreferencePanes/My*
         sudo rm -rf /Library/Receipts/mysql*
         sudo rm -rf /Library/Receipts/MySQL*
         sudo rm -rf /var/db/receipts/com.mysql.*
         其實不同的安裝方式有些東西的存儲位置不一樣,删除完檢查一下下面這些檔案是否删除了,沒有的話則删除掉:
         /usr/local/Cellar 裡的mysql檔案
         /usr/local/var 裡的mysql檔案
         /tmp 裡的mysql.sock, mysql.sock.lock, my.cnf檔案
         pid檔案和err檔案都在/usr/local/var/mysql裡確定删除了
         brew安裝的安裝包存儲在/usr/local/Library/Cache/Homebrew也可以一并删除
         執行brew cleanup 
        
                   
    7. 安裝redis
      1. 官網下載下傳 stable版的安裝包
      2. 解壓縮然後挪到 /usr/local/

        tar -vxf redis-5.0.0.tar -C /usr/local/

      3. 進redis的目錄編譯一下,參考這篇
        cd /usr/local/redis*
        sudo make test
        sudo make install
                   
      4. 背景啟動redis
        redis-server &
                   
  2. 各種開發工具,目前主流的是用IDEA和VSCode來進行開發,也歡迎用其他的

    0. IDEA

    0. 直接官網下載下傳

    1. 破解方法百度"lan yu",支援正版從我做起:)

    2. 安裝各種插件,比如"ruby"

    1. VSCode

      0. 直接官網下載下傳

      1. 安裝各種插件,比如"ruby"
    2. DB工具

      0. 我直接用的MySql自己的MySQLWorkbench

      1. 連結一下本地DB試試,記得改root密碼 :)
  3. 運作容器

    0. 一般來說有三種方式運作程式

    0. 本地直接運作

    1. 虛拟機

    2. docker

    三種方式各有優缺點可以自己找資料
               
    1. 安裝docker

      0. 官網安裝教程

      1. 下載下傳普通安裝略
      2. 版本驗證
        chen1:llspay chenchen$ docker --version
        Docker version 18.06.1-ce, build e68fc7a
        chen1:llspay chenchen$ docker-compose --version
        docker-compose version 1.22.0, build f46880f
        chen1:llspay chenchen$ docker-machine --version
        docker-machine version 0.15.0, build b48dc28d
                   
      3. 然後在狀态欄小鲸魚裡面裝Kubernetes

導入項目

涉及公司資訊,略。

ruby依賴庫

  1. bundler:Manage dependencies of an application
    ref: https://rubygems.org/gems/bundler
  2. pry: Ruby的debug工具。可能裝了,如果沒裝:

    gem install pry

    ref: https://github.com/pry/pry
  3. Debug Ruby用的一些玩意兒

    0. debase

    gem install debase

    ref: https://rubygems.org/gems/debase/
    1. ruby-debug-ide

      gem install ruby-debug-ide

      ref: https://rubygems.org/gems/ruby-debug-ide/

關于開發

  1. 教程
    • Ruby on Rails Guides
      官方文檔,不過是英文的
    • 菜鳥教程
      這裡面從安裝到基本文法都寫的挺詳細,而且是中文文檔
  2. CI/CD
    • 持續內建持續部署(大概這樣翻譯) Continuous Integration/Continuous Deployment
      ref: https://blog.csdn.net/sinat_35930259/article/details/79429743

繼續閱讀