{"id":26425,"date":"2023-04-25T20:57:10","date_gmt":"2023-03-20T13:29:01","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8macbook-pro-2016%e4%b8%8a%e5%ae%89%e8%a3%85vagrant%ef%bc%8c%e5%b9%b6%e6%9e%84%e5%bb%baruby-on-rails5%e7%8e%af%e5%a2%83%ef%bc%8c%e7%84%b6%e5%90%8e%e4%b8%8egithub%e8%bf%9b%e8%a1%8c%e8%bf%9e\/"},"modified":"2025-08-11T21:12:27","modified_gmt":"2025-08-11T13:12:27","slug":"%e5%9c%a8macbook-pro-2016%e4%b8%8a%e5%ae%89%e8%a3%85vagrant%ef%bc%8c%e5%b9%b6%e6%9e%84%e5%bb%baruby-on-rails5%e7%8e%af%e5%a2%83%ef%bc%8c%e7%84%b6%e5%90%8e%e4%b8%8egithub%e8%bf%9b%e8%a1%8c%e8%bf%9e","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8macbook-pro-2016%e4%b8%8a%e5%ae%89%e8%a3%85vagrant%ef%bc%8c%e5%b9%b6%e6%9e%84%e5%bb%baruby-on-rails5%e7%8e%af%e5%a2%83%ef%bc%8c%e7%84%b6%e5%90%8e%e4%b8%8egithub%e8%bf%9b%e8%a1%8c%e8%bf%9e\/","title":{"rendered":"\u5728Macbook Pro 2016\u4e0a\u5b89\u88c5Vagrant\uff0c\u5e76\u6784\u5efaRuby on Rails5\u73af\u5883\uff0c\u7136\u540e\u4e0eGitHub\u8fdb\u884c\u8fde\u63a5"},"content":{"rendered":"<h1>\u9996\u5148\u6211\u5c06\u7528\u5907\u5fd8\u5f55\u7684\u65b9\u5f0f\u8bb0\u5f55\u6211\u5728\u5b9e\u9645\u81ea\u6211\u4ea7\u54c1\u5f00\u53d1\u4e2d\u4f7f\u7528\u7684\u5f00\u53d1\u73af\u5883\u7684\u6784\u5efa\u65b9\u6cd5\u3002\u76ee\u6807\u662f\u4f7f\u7528\u5168\u90e8\u865a\u62df\u73af\u5883\u8fdb\u884c\u5f00\u53d1\uff0c\u4ee5\u786e\u4fdd\u672c\u5730\u73af\u5883\u7684\u6e05\u6d01\u3002<\/p>\n<h1>\u73af\u5883\u4ee5\u4e0b\u662f\u6211\u4eec\u80fd\u591f\u5efa\u7acb\u7684\u73af\u5883\u3002<\/p>\n<pre class=\"post-pre\"><code>\u30db\u30b9\u30c8OS: macOS Sierra\r\n\u2514 VirtualBox: 5.1.12\r\n  \u2514 Vagrant: 1.9.1\r\n    \u2514 CentOS: 7.2\r\n      \u2514 rbenv: 1.1.0-2-g4f8925a\r\n        \u2514 Ruby: 2.4.0\r\n      \u2514 Gem: 2.6.8\r\n\u3000\u3000\u3000\u3000      \u2514 Rails: 5.0.2\r\n      \u2514 PostgreSQL: 9.5\r\n      \u2514 Git: 1.8.3.1 (To connect with GitHub)\r\n<\/code><\/pre>\n<p>\u5728\u6211\u7684Mac\u4e0a\u5b89\u88c5VirtualBox\uff0c\u5e76\u5728\u5176\u4e0a\u4f7f\u7528Vagrant\u8fd0\u884cCentOS\u3002\u7136\u540e\u5728\u5176\u4e2d\u6784\u5efaRuby on Rails\u73af\u5883\u3002<\/p>\n<h1>\u69cb\u5efaVagrant\u73af\u5883\u9996\u5148\uff0c\u4ece\u642d\u5efa\u57fa\u7840\u5f00\u59cb\u3002<br \/>\n\u6211\u4eec\u5c06\u6784\u5efaVagrant\u73af\u5883\u3002<\/p>\n<h2>\u5728\u4e2d\u56fd\u9700\u8981\u5b89\u88c5VirtualBox\u3002\u865a\u62df\u73af\u5883\u8f6f\u4ef6\u4f7f\u7528&#8221;VirtualBox&#8221;\u6765\u521b\u5efa\u3002\u7248\u672c\u662f&#8221;5.1.12&#8243;\u3002<\/p>\n<p>VirtualBox\u662f\u5c5e\u4e8eOracle\u516c\u53f8\u7684\u4e00\u4e2a\u5f00\u6e90\u865a\u62df\u5316\u8f6f\u4ef6\u3002<\/p>\n<h2>\u5b89\u88c5VagrantVagrant\u53ef\u4ee5\u901a\u8fc7\u56fe\u5f62\u7528\u6237\u754c\u9762\u8f7b\u677e\u5b89\u88c5\uff0c\u53ea\u9700\u70b9\u70b9\u9f20\u6807\u5373\u53ef\u3002<\/p>\n<p>\u60a8\u53ef\u4ee5\u4ece\u4ee5\u4e0b\u94fe\u63a5\u4e2d\u8fdb\u884c\u4e0b\u8f7d\u3002<\/p>\n<p>\u6d41\u6d6a\u8005<\/p>\n<p>\u8981\u786e\u8ba4\u662f\u5426\u5df2\u6210\u529f\u5b89\u88c5\uff0c\u8bf7\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u8fdb\u884c\u786e\u8ba4\u3002<\/p>\n<pre class=\"post-pre\"><code>$ vagrant -v\r\nVagrant 1.9.1\r\n<\/code><\/pre>\n<p>\u5f53\u7248\u672c\u8fd4\u56de\u540e\uff0c\u8bf4\u660e\u5b89\u88c5\u5df2\u6210\u529f\u3002<\/p>\n<h2>\u4f7f\u7528 Box \u5b89\u88c5 CentOS\u3002Box\u662f\u4e00\u79cd\u7528\u4e8e\u5b58\u50a8\u5728Vagrant\u4e0a\u8fd0\u884c\u7684\u865a\u62df\u673a\u7684\u78c1\u76d8\u6620\u50cf\u548c\u5143\u6570\u636e\u7684\u6587\u4ef6\uff0c\u4ee5\u201c.box\u201d\u683c\u5f0f\u5b58\u50a8\u7684\u3002<\/p>\n<p>\u6211\u4f1a\u4ece\u4ee5\u4e0b\u4f4d\u7f6e\u501f\u7528\u8be5\u6587\u4ef6\u3002<\/p>\n<p>Vagrant \u7684\u57fa\u7840\u865a\u62df\u673a\u76d2\u5b50\u5217\u8868 \u2014 Vagrantbox.es<\/p>\n<p>\u4e3a\u4e86\u5728Vagrant\u4e0a\u5b89\u88c5\u64cd\u4f5c\u7cfb\u7edf\uff0c\u6211\u4eec\u9700\u8981\u6dfb\u52a0\u4e00\u4e2aBox\u5230Vagrant\u4e2d\u3002<br \/>\n\u53ef\u4ee5\u4f7f\u7528vagrant box add\u547d\u4ee4\u6765\u6dfb\u52a0Box\uff0c\u5728add\u4e4b\u540e\u6307\u5b9aBox\u7684\u540d\u79f0\u3002\u60a8\u53ef\u4ee5\u968f\u610f\u547d\u540dBox\u7684\u540d\u79f0\u3002<\/p>\n<pre class=\"post-pre\"><code>$ vagrant box add centos72 https:\/\/github.com\/CommanderK5\/packer-centos-template\/releases\/download\/0.7.2\/vagrant-centos-7.2.box\r\n<\/code><\/pre>\n<p>\u8ffd\u52a0\u7684Box\u662f\u6700\u5c0f\u914d\u7f6e\u7684Minimal CentOS\uff0c\u7248\u672c\u4e3a&#8221;7.2&#8243;\u3002<\/p>\n<h2>\u521d\u59cb\u5316 Vagrant\u4f7f\u7528 &#8220;vagrant init&#8221; \u547d\u4ee4\uff0c\u6307\u5b9a Box \u540d\u79f0\uff0c\u5c06\u8ffd\u52a0\u7684 Box \u8fdb\u884c\u521d\u59cb\u5316\uff0c\u5e76\u5c06\u5176\u6620\u50cf\u52a0\u8f7d\u5230 VirtualBox \u4e0a\u3002<\/p>\n<pre class=\"post-pre\"><code>$ vagrant init centos72\r\n<\/code><\/pre>\n<p>\u6210\u529f\u521d\u59cb\u5316\u540e\uff0c\u4f1a\u751f\u6210\u4e00\u4e2a\u540d\u4e3a Vagrantfile \u7684 Ruby \u6587\u4ef6\u3002<\/p>\n<p>\u5728\u4e0b\u4e00\u8282\u7684\u201cVagrantfile\u7684\u914d\u7f6e\u201d\u4e2d\uff0c\u6211\u4eec\u5c06\u8fdb\u884c\u5fc5\u8981\u7684Vagrant\u914d\u7f6e\u6765\u8fdb\u884c\u5f00\u53d1\u3002<\/p>\n<h2>Vagrantfile\u7684\u914d\u7f6e\u8bbe\u7f6e\u70ba\u4e86\u4f7f\u958b\u767c\u8b8a\u5f97\u66f4\u5bb9\u6613\uff0c\u6211\u5011\u4fee\u6539\u4e86Vagrantfile\u7684\u8a2d\u7f6e\uff0c\u4ee5\u5bb9\u8a31\u5f9e\u4e3b\u6a5fOS\u9032\u884c\u901a\u8a0a\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"c1\"># -*- mode: ruby -*-<\/span>\r\n<span class=\"c1\"># vi: set ft=ruby :<\/span>\r\n\r\n<span class=\"c1\"># All Vagrant configuration is done below. The \"2\" in Vagrant.configure<\/span>\r\n<span class=\"c1\"># configures the configuration version (we support older styles for<\/span>\r\n<span class=\"c1\"># backwards compatibility). Please don't change it unless you know what<\/span>\r\n<span class=\"c1\"># you're doing.<\/span>\r\n<span class=\"p\">:<\/span>\r\n<span class=\"p\">(<\/span><span class=\"err\">\u4e2d\u7565<\/span><span class=\"p\">)<\/span>\r\n<span class=\"p\">:<\/span>\r\n<span class=\"c1\"># Share an additional folder to the guest VM. The first argument is<\/span>\r\n<span class=\"c1\"># the path on the host to the actual folder. The second argument is<\/span>\r\n<span class=\"c1\"># the path on the guest to mount the folder. And the optional third<\/span>\r\n<span class=\"c1\"># argument is a set of non-required options.<\/span>\r\n<span class=\"c1\"># config.vm.synced_folder \"..\/data\", \"\/vagrant_data\"<\/span>\r\n<span class=\"n\">config<\/span><span class=\"p\">.<\/span><span class=\"nf\">vm<\/span><span class=\"p\">.<\/span><span class=\"nf\">network<\/span> <span class=\"ss\">:forwarded_port<\/span><span class=\"p\">,<\/span> <span class=\"ss\">guest: <\/span><span class=\"mi\">3000<\/span><span class=\"p\">,<\/span> <span class=\"ss\">host: <\/span><span class=\"mi\">3000<\/span> <span class=\"o\">\/<\/span><span class=\"sr\">\/ \u8ffd\u52a0\r\n:\r\n(\u4e2d\u7565)\r\n:\r\n<\/span><\/code><\/pre>\n<h2>\u542f\u52a8Vagrant\u4e3a\u4e86\u642d\u5efaRuby on Rails5\u73af\u5883\u7684\u6b21\u9879\uff0c\u6211\u4eec\u5c06\u542f\u52a8Vagrant\uff0c\u5e76\u767b\u5f55\u5230\u901a\u8fc7Box\u642d\u5efa\u7684CentOS\u4e2d\u3002<\/p>\n<pre class=\"post-pre\"><code>$ vagrant up\r\n$ vagrant ssh\r\n<\/code><\/pre>\n<p>\u6d41\u6d6a\u8005\u7684\u73af\u5883\u8bbe\u7f6e\u5b8c\u6210\uff01<\/p>\n<h1>\u5728Ruby on Rails 5\u73af\u5883\u4e2d\u8fdb\u884c\u8bbe\u7f6e\u3002\u6211\u4eec\u5c06\u6784\u5efaRuby on Rails\u73af\u5883\u3002\u9009\u62e9\u6700\u65b0\u7248\u672c\uff08\u64b0\u5199\u65f6\u7684\u6700\u65b0\u7248\u672c\u4e3a5.0.2\uff09\u3002<\/p>\n<h2>yum\u7684\u66f4\u65b0<\/p>\n<pre class=\"post-pre\"><code><span class=\"gp\">$<\/span> yum check-update\r\n<span class=\"gp\">$<\/span> <span class=\"nb\">sudo <\/span>yum update\r\n<\/code><\/pre>\n<h2>\u5b89\u88c5\u5fc5\u8981\u7684\u8f6f\u4ef6\u5305\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"gp\">$<\/span> <span class=\"nb\">sudo <\/span>yum <span class=\"nt\">-y<\/span> <span class=\"nb\">install <\/span>curl curl-devel gcc gcc-c++ git openssl-devel httpd-devel readline-devel tk-devel make zlib-devel libffi-devel\r\n<\/code><\/pre>\n<h2>\u5b89\u88c5rbenv\u53ef\u4ee5\u4eceGitHub\u5b89\u88c5rbenv\u3002<br \/>\n\u7531\u4e8e\u4e2a\u4eba\u504f\u7231bash\uff0c\u6240\u4ee5\u5c06\u8def\u5f84\u6dfb\u52a0\u5230.bash_profile\u4e2d\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"gp\">$<\/span> git clone https:\/\/github.com\/sstephenson\/rbenv.git ~\/.rbenv\r\n<span class=\"gp\">$<\/span> git clone https:\/\/github.com\/sstephenson\/ruby-build.git ~\/.rbenv\/plugins\/ruby-build\r\n<span class=\"gp\">$<\/span> <span class=\"nb\">sudo<\/span> ~\/.rbenv\/plugins\/ruby-build\/install.sh\r\n<span class=\"gp\">$<\/span> <span class=\"nb\">echo<\/span> <span class=\"s1\">'export PATH=\"$HOME\/.rbenv\/bin:$PATH\"'<\/span> <span class=\"o\">&gt;&gt;<\/span> ~\/.bash_profile\r\n<span class=\"gp\">$<\/span> <span class=\"nb\">echo<\/span> <span class=\"s1\">'eval \"$(rbenv init -)\"'<\/span> <span class=\"o\">&gt;&gt;<\/span> ~\/.bash_profile\r\n<span class=\"gp\">$<\/span> <span class=\"nb\">exec<\/span> <span class=\"nv\">$SHELL<\/span> <span class=\"nt\">-l<\/span>\r\n<span class=\"gp\">$<\/span> <span class=\"nb\">source<\/span> ~\/.bash_profile\r\n<span class=\"gp\">$<\/span> rbenv <span class=\"nt\">--version<\/span>\r\n<span class=\"go\">rbenv 1.1.0-2-g4f8925a\r\n<\/span><\/code><\/pre>\n<h2>\u5b89\u88c5Ruby\u9009\u62e9\u7248\u672c\u4e3a\u201c2.4.0\u201d\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"gp\">$<\/span> rbenv <span class=\"nb\">install<\/span> <span class=\"nt\">-l<\/span>\r\n<span class=\"gp\">$<\/span> rbenv <span class=\"nb\">install<\/span> <span class=\"nt\">-v<\/span> 2.4.0\r\n<span class=\"gp\">$<\/span> rbenv versions\r\n<span class=\"gp\">$<\/span> rbenv global 2.4.0\r\n<span class=\"gp\">$<\/span> ruby <span class=\"nt\">-v<\/span>\r\n<\/code><\/pre>\n<h2>\u5b89\u88c5Rails<br \/>\n\u4e0d\u6307\u5b9a\u7248\u672c\u3002\u8fd9\u79cd\u60c5\u51b5\u4e0b\u5c06\u5b89\u88c5Gem\u6307\u5b9a\u7684\u9ed8\u8ba4\u7248\u672c\u3002\u5982\u679c\u60f3\u6307\u5b9aRails\u7248\u672c\uff0c\u8bf7\u5728\u9009\u9879\u4e2d\u6dfb\u52a0\uff08\u53c2\u8003\uff09\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"gp\">$<\/span> gem update <span class=\"nt\">--system<\/span>\r\n<span class=\"gp\">$<\/span> gem <span class=\"nb\">install <\/span>rails <span class=\"nt\">--no-ri<\/span> <span class=\"nt\">--no-rdoc<\/span>\r\n<span class=\"gp\">$<\/span> rbenv rehash\r\n<span class=\"gp\">$<\/span> rails <span class=\"nt\">-v<\/span>\r\n<span class=\"gp\">$<\/span> Rails 5.0.2\r\n<\/code><\/pre>\n<h1>\u5b89\u88c5PostgreSQL\u6570\u636e\u5e93\u3002\u6211\u5011\u5c07\u9032\u884c PostgreSQL \u7684\u5b89\u88dd\u3002\u9078\u64c7\u7248\u672c &#8220;9.5&#8221;\u3002<\/p>\n<h2>\u914d\u7f6eyum\u5b58\u50a8\u5e93<\/p>\n<pre class=\"post-pre\"><code><span class=\"gp\">$<\/span> <span class=\"nb\">sudo <\/span>vi \/etc\/yum.repos.d\/CentOS-Base.repo\r\n<span class=\"go\">:\r\n[base]\r\n<\/span><span class=\"gp\">name=CentOS-$<\/span>releasever - Base\r\n<span class=\"gp\">mirrorlist=http:\/\/mirrorlist.centos.org\/?release=$<\/span>releasever&amp;arch<span class=\"o\">=<\/span><span class=\"nv\">$basearch<\/span>&amp;repo<span class=\"o\">=<\/span>os\r\n<span class=\"gp\">#<\/span><span class=\"nv\">baseurl<\/span><span class=\"o\">=<\/span>http:\/\/mirror.centos.org\/centos\/<span class=\"nv\">$releasever<\/span>\/os\/<span class=\"nv\">$basearch<\/span>\/\r\n<span class=\"go\">gpgcheck=1\r\ngpgkey=file:\/\/\/etc\/pki\/rpm-gpg\/RPM-GPG-KEY-CentOS-6\r\nexclude=postgresql*  \/\/ \u8ffd\u8a18\r\n\r\n[updates]\r\n<\/span><span class=\"gp\">name=CentOS-$<\/span>releasever - Updates\r\n<span class=\"gp\">mirrorlist=http:\/\/mirrorlist.centos.org\/?release=$<\/span>releasever&amp;arch<span class=\"o\">=<\/span><span class=\"nv\">$basearch<\/span>&amp;repo<span class=\"o\">=<\/span>updates\r\n<span class=\"gp\">#<\/span><span class=\"nv\">baseurl<\/span><span class=\"o\">=<\/span>http:\/\/mirror.centos.org\/centos\/<span class=\"nv\">$releasever<\/span>\/updates\/<span class=\"nv\">$basearch<\/span>\/\r\n<span class=\"go\">gpgcheck=1\r\ngpgkey=file:\/\/\/etc\/pki\/rpm-gpg\/RPM-GPG-KEY-CentOS-6\r\nexclude=postgresql*  \/\/ \u8ffd\u8a18\r\n:\r\n<\/span><\/code><\/pre>\n<h2>\u6dfb\u52a0\u9002\u7528\u4e8ePostgreSQL9.5\u7684\u5b58\u50a8\u5e93\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"gp\">$<\/span> <span class=\"nb\">sudo <\/span>yum <span class=\"nb\">install<\/span> <span class=\"nt\">-y<\/span> https:\/\/download.postgresql.org\/pub\/repos\/yum\/9.5\/redhat\/rhel-7-x86_64\/pgdg-centos95-9.5-2.noarch.rpm\r\n<\/code><\/pre>\n<h2>PostgreSQL9.5\u5b89\u88c5\u548c\u521d\u59cb\u5316-\u542f\u52a8\u81f3\u5b8c\u6210<\/p>\n<pre class=\"post-pre\"><code><span class=\"gp\">$<\/span> <span class=\"nb\">sudo <\/span>yum <span class=\"nb\">install<\/span> <span class=\"nt\">-y<\/span> postgresql95 postgresql95-server postgresql95-libs postgresql95-contrib postgresql95-devel\r\n<span class=\"gp\">$<\/span> <span class=\"nb\">sudo<\/span> \/usr\/pgsql-9.5\/bin\/postgresql95-setup initdb\r\n<span class=\"gp\">$<\/span> <span class=\"nb\">sudo <\/span>systemctl start postgresql-9.5\r\n<\/code><\/pre>\n<h2>\u8bbe\u5b9a PostgreSQL \u7684\u521d\u59cb\u542f\u52a8<\/p>\n<pre class=\"post-pre\"><code><span class=\"gp\">$<\/span> <span class=\"nb\">sudo <\/span>systemctl <span class=\"nb\">enable <\/span>postgresql-9.5\r\n<\/code><\/pre>\n<h2>\u5141\u8bb8\u5916\u90e8\u670d\u52a1\u5668\u8bbf\u95ee<\/p>\n<pre class=\"post-pre\"><code><span class=\"gp\">$<\/span> <span class=\"nb\">sudo <\/span>vi \/var\/lib\/pgsql\/9.5\/data\/postgresql.conf\r\n<span class=\"go\">\r\n:\r\nlisten_addresses = '*'  \/\/ localhost \u304b\u3089\u5909\u66f4\r\n:\r\n<\/span><\/code><\/pre>\n<h2>\u5ba2\u6237\u8ba4\u8bc1\u8bbe\u7f6e<\/p>\n<pre class=\"post-pre\"><code><span class=\"gp\">$<\/span> <span class=\"nb\">sudo <\/span>vi \/var\/lib\/pgsql\/9.5\/data\/pg_hba.conf\r\n<span class=\"go\">:\r\n<\/span><span class=\"gp\">#<\/span> <span class=\"s2\">\"local\"<\/span> is <span class=\"k\">for <\/span>Unix domain socket connections only\r\n<span class=\"go\">local   all             all                                     peer\r\n<\/span><span class=\"gp\">#<\/span> IPv4 <span class=\"nb\">local <\/span>connections:\r\n<span class=\"go\">host    all             all             127.0.0.1\/32            trust  \/\/ ident \u304b\u3089\u5909\u66f4\r\n<\/span><span class=\"gp\">#<\/span> IPv6 <span class=\"nb\">local <\/span>connections:\r\n<span class=\"go\">host    all             all             ::1\/128                 trust  \/\/ ident \u304b\u3089\u5909\u66f4\r\n:\r\n<\/span><\/code><\/pre>\n<h2>\u5c06PostgreSQL9.5\u7684\u8def\u5f84\u6dfb\u52a0\u5230\u73af\u5883\u53d8\u91cf\u4e2d\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"gp\">$<\/span> <span class=\"nb\">export <\/span><span class=\"nv\">PATH<\/span><span class=\"o\">=<\/span>\/usr\/pgsql-9.5\/bin:<span class=\"nv\">$PATH<\/span>\r\n<span class=\"gp\">$<\/span> <span class=\"nb\">export <\/span><span class=\"nv\">PGDATA<\/span><span class=\"o\">=<\/span>\/var\/lib\/pgsql\/9.5\/data\r\n<span class=\"gp\">$<\/span> <span class=\"nb\">source<\/span> ~\/.bash_profile\r\n<\/code><\/pre>\n<h2>\u91cd\u65b0\u542f\u52a8<\/p>\n<pre class=\"post-pre\"><code><span class=\"gp\">$<\/span> <span class=\"nb\">sudo <\/span>systemctl restart postgresql-9.5\r\n<\/code><\/pre>\n<h2>\u65b0\u589evagrant\u7528\u6237<\/p>\n<pre class=\"post-pre\"><code><span class=\"gp\">$<\/span> <span class=\"nb\">sudo <\/span>su - postgres\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"gp\">-bash-4.1$<\/span> createuser <span class=\"nt\">--superuser<\/span> vagrant\r\n<span class=\"gp\">-bash-4.1$<\/span> <span class=\"nb\">exit<\/span>\r\n<span class=\"go\">logout\r\n<\/span><\/code><\/pre>\n<h1>\u4e0eGitHub\u7684\u534f\u4f5c\u4e3a\u4e86\u5728GitHub\u4e0a\u8fdb\u884c\u6e90\u4ee3\u7801\u7684\u64cd\u4f5c\uff0c\u9700\u8981\u5c06Vagrant\u548cGitHub\u8fdb\u884c\u8fde\u63a5\u3002<\/p>\n<h2>\u521b\u5efaSSH\u5bc6\u94a5<br \/>\n\u4e3a\u4e86\u4f7fVagrant\u548cGitHub\u4e92\u76f8\u534f\u4f5c\uff0c\u9700\u8981\u521b\u5efa\u8eab\u4efd\u9a8c\u8bc1\u6240\u9700\u7684\u5bc6\u94a5\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"gp\">$<\/span> ssh-keygen <span class=\"nt\">-t<\/span> rsa <span class=\"nt\">-C<\/span> <span class=\"s2\">\"YOUR_EMAIL\"<\/span> \/\/ Github\u3067\u4f7f\u7528\u3057\u3066\u3044\u308bEmail\r\n<span class=\"go\">Generating public\/private rsa key pair.\r\nEnter file in which to save the key (\/home\/vagrant\/.ssh\/id_rsa): \r\nEnter passphrase (empty for no passphrase): \r\nEnter same passphrase again: \r\nYour identification has been saved in \/home\/vagrant\/.ssh\/id_rsa.\r\nYour public key has been saved in \/home\/vagrant\/.ssh\/id_rsa.pub.\r\nThe key fingerprint is:\r\n************************* YOUR_EMAIL\r\nThe key's randomart image is:\r\n+--[ RSA 2048]----+\r\n|                 |\r\n|         .   .   |\r\n|        +     o  |\r\n|       . o   = . |\r\n|        S . B +  |\r\n|           B oE. |\r\n|          o o ...|\r\n|           oo. ..|\r\n|            .=+o*|\r\n+-----------------+\r\n<\/span><\/code><\/pre>\n<h2>\u4fdd\u5b58SSH\u5bc6\u94a5<\/p>\n<pre class=\"post-pre\"><code><span class=\"gp\">$<\/span> <span class=\"nb\">eval<\/span> <span class=\"s2\">\"<\/span><span class=\"si\">$(<\/span>ssh-agent <span class=\"nt\">-s<\/span><span class=\"si\">)<\/span><span class=\"s2\">\"<\/span>\r\n<span class=\"go\">Agent pid 27250\r\n<\/span><span class=\"gp\">$<\/span> ssh-add ~\/.ssh\/id_rsa\r\n<span class=\"go\">Identity added: \/home\/vagrant\/.ssh\/id_rsa (\/home\/vagrant\/.ssh\/id_rsa)\r\n<\/span><\/code><\/pre>\n<h2>SSH\u5bc6\u94a5\u7684\u6ce8\u518c<\/p>\n<pre class=\"post-pre\"><code><span class=\"gp\">$<\/span> <span class=\"nb\">cat<\/span> ~\/.ssh\/id_rsa.pub <span class=\"o\">&gt;&gt;<\/span> \/home\/vagrant\/.ssh\/authorized_keys\r\n<span class=\"gp\">$<\/span> <span class=\"nb\">chmod <\/span>600 \/home\/vagrant\/.ssh\/authorized_keys\r\n<span class=\"gp\">$<\/span> <span class=\"nb\">chmod <\/span>600 ~\/.ssh\/id_rsa\r\n<span class=\"gp\">$<\/span> <span class=\"nb\">cat<\/span> ~\/.ssh\/id_rsa.pub\r\n<span class=\"go\">\u203b \u516c\u958b\u9375\u304c\u8868\u793a\u3055\u308c\u308b \/\/ \u6b21\u9805\u300c\u751f\u6210\u3055\u308c\u305f\u516c\u958b\u9375\u3092GitHub\u306b\u767b\u9332\u300d\u3067\u4f7f\u7528\u3059\u308b\r\n<\/span><\/code><\/pre>\n<h2>\u5c06\u751f\u6210\u7684\u516c\u94a5\u6ce8\u518c\u5230GitHub\u4e0a\u3002\u5fc5\u987b\u5728\u201cSSH\u5bc6\u94a5\u6ce8\u518c\u201d\u4e2d\u4f7f\u7528\u7684cat\u547d\u4ee4\u4e2d\u663e\u793a\u7684\u516c\u94a5\u8bbe\u7f6e\u5728GitHub\u4e0a\u3002\u8bbe\u7f6e\u9700\u8981\u5728GitHub\u7684SSH\u5bc6\u94a5\u8bbe\u7f6e\u9875\u9762\u4e0a\u8fdb\u884c\u3002<\/p>\n<h2>\u521b\u5efa\u4e00\u4e2a\u7528\u4e8e\u767b\u5f55GitHub\u7684\u811a\u672c\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"gp\">$<\/span> vi ~\/.ssh\/config\r\n<span class=\"go\">Host github\r\n    HostName        github.com\r\n    IdentityFile    ~\/.ssh\/id_rsa\r\n    User            git\r\n\r\n<\/span><span class=\"gp\">$<\/span> <span class=\"nb\">chmod <\/span>600 ~\/.ssh\/config\r\n<\/code><\/pre>\n<h2>\u786e\u8ba4\u662f\u5426\u53ef\u4ee5\u4e0eGitHub\u8fdb\u884c\u901a\u4fe1\u786e\u8ba4\u4e00\u4e0b\u521a\u521a\u521b\u5efa\u7684\u811a\u672c\u662f\u5426\u80fd\u4e0eGitHub\u901a\u4fe1\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"gp\">$<\/span> ssh github\r\n<span class=\"go\">Warning: Permanently added the RSA host key for IP address '192.30.253.112' to the list of known hosts.\r\nPTY allocation request failed on channel 0\r\nHi seiyamaeda! You've successfully authenticated, but GitHub does not provide shell access.\r\nConnection to github.com closed.\r\nhub.com closed.\r\n<\/span><\/code><\/pre>\n<h1>\u7ed3\u675f\u795d\u60a8\u7684\u4e2a\u4eba\u53d1\u5c55\u987a\u5229\uff01\uff01\uff01<\/p>\n<h1>\u64b0\u5199\u7a3f\u4ef6\u7684\u540e\u8bb0CentOS 7\u76f8\u6bd4\u4e4b\u524d\u7684\u7248\u672c6\u6709\u5f88\u591a\u53d8\u5316\uff0c\u9700\u8981\u82b1\u8d39\u65f6\u95f4\u6765\u5904\u7406\u3002\u7cfb\u7edf\u542f\u52a8\u5904\u7406\u548c\u670d\u52a1\u7ba1\u7406\uff0c\u4ee5\u53ca\u7f51\u7edc\u65b9\u9762\u7684\u53d8\u5316\u90fd\u5f88\u660e\u663e\u3002<\/p>\n<p>2015\u5e74\u53d1\u5e03\u540e\uff0c\u5df2\u7ecf\u8fc7\u4e86\u76f8\u5f53\u957f\u7684\u65f6\u95f4\u3002\u5728\u64cd\u4f5c\u7cfb\u7edf\u65b9\u9762\uff0c\u6211\u5b8c\u5168\u65e0\u6cd5\u8ddf\u4e0a\u3002<\/p>\n<p>\u5982\u679c\u60a8\u5bf9CentOS 7\u611f\u5174\u8da3\u7684\u8bdd\uff0c\u7531\u4e8e\u5b83\u6dfb\u52a0\u4e86\u7b26\u5408\u884c\u4e1a\u9700\u6c42\u7684\u65b0\u529f\u80fd\u548c\u529f\u80fd\u4fee\u6b63\uff0c\u60a8\u53ef\u4ee5\u73a9\u5f04\u5b83\uff0c\u611f\u89c9\u4f1a\u5f88\u6709\u8da3\u3002<\/p>\n<p>CentOS-7 (1503) \u53d1\u5e03\u8bf4\u660e\u7684\u4e3b\u8981\u66f4\u6539\u70b9\u3002<\/p>\n<p>\u5bf9\u4e8e\u64cd\u4f5c\u7cfb\u7edf\u7248\u672c\u7684\u8ba8\u8bba\uff0c\u672c\u5730\u5f00\u53d1\u53ef\u80fd\u5e76\u4e0d\u592a\u9700\u8981\u8fc7\u4e8e\u5728\u610f\u3002\u53ea\u8981\u80fd\u8fd0\u884c\u5c31\u53ef\u4ee5\u3002<\/p>\n<h1>\u6587\u7ae0\u53ef\u4f9b\u53c2\u8003<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Vagrant\u3092\u4f7f\u3063\u3066\u4eee\u60f3\u74b0\u5883\u3092\u69cb\u7bc9\u3059\u308b<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u3055\u304f\u3089VPS (CentOS6.5) \u306bRuby on Rails\u74b0\u5883\u3092\u69cb\u7bc9\u3059\u308b<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u3010Rails\u5f37\u5316\u9031\u9593\u3011Vagrant\u306b\u69cb\u7bc9\u3057\u305f\u74b0\u5883\u304b\u3089GitHub\u3078\u63a5\u7d9a\u3059\u308b<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u3010Rails\u5f37\u5316\u9031\u9593\u3011\u958b\u767a\u74b0\u5883\u306e\u69cb\u7bc9<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">CentOS7\u306bPostgreSQL\u3092\u5c0e\u5165\uff06\u521d\u671f\u8a2d\u5b9a\u3092\u304a\u3053\u306a\u3046 \u2013 vdeep<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">CentOS 6.7 \u306b PostgreSQL 9.5 \u3092 yum\u3067\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u624b\u9806 \u2013 Hamaoka\u2019s blog<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">RPM\u3092\u7528\u3044\u305fPostgreSQL 9.5 \u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u624b\u9806 \u2013 Qiita<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">CentOS7 \u306bPostgreSQL9.5\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b \u2013 INU NOTE<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">CentOS 7 \u306b PostGIS \u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b \u2013 Qiita<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">CentOS\u306bPostgreSQL9.5\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u304a\u3088\u3073\u30c6\u30b9\u30c8 \u2013 Qiita<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">CentOS \u306b PostgreSQL 9 \u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\uff06\u5229\u7528\u3059\u308b \u2013 \u307e\u3060\u30d7\u30ed\u30b0\u30e9\u30de\u30fc\u3067\u3059\u304c\u4f55\u304b\uff1f<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">Vagrant\u4e0a\u306eCentOS 6.6\u306bPostgreSQL 9.3\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b \u2013 Qiita<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>\u9996\u5148\u6211\u5c06\u7528\u5907\u5fd8\u5f55\u7684\u65b9\u5f0f\u8bb0\u5f55\u6211\u5728\u5b9e\u9645\u81ea\u6211\u4ea7\u54c1\u5f00\u53d1\u4e2d\u4f7f\u7528\u7684\u5f00\u53d1\u73af\u5883\u7684\u6784\u5efa\u65b9\u6cd5\u3002\u76ee\u6807\u662f\u4f7f\u7528\u5168\u90e8\u865a\u62df\u73af\u5883\u8fdb\u884c\u5f00\u53d1\uff0c\u4ee5\u786e [&hellip;]<\/p>\n","protected":false},"author":9,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[227],"class_list":["post-26425","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-227"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u5728Macbook Pro 2016\u4e0a\u5b89\u88c5Vagrant\uff0c\u5e76\u6784\u5efaRuby on Rails5\u73af\u5883\uff0c\u7136\u540e\u4e0eGitHub\u8fdb\u884c\u8fde\u63a5 - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"\u5173\u4e8e\u5728Macbook Pro 2016\u4e0a\u5b89\u88c5Vagrant\uff0c\u5e76\u6784\u5efaRuby on Rails5\u73af\u5883\uff0c\u7136\u540e\u7684\u6280\u672f\u6587\u7ae0\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/\u5728macbook-pro-2016\u4e0a\u5b89\u88c5vagrant\uff0c\u5e76\u6784\u5efaruby-on-rails5\u73af\u5883\uff0c\u7136\u540e\u4e0egithub\u8fdb\u884c\u8fde\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u5728Macbook Pro 2016\u4e0a\u5b89\u88c5Vagrant\uff0c\u5e76\u6784\u5efaRuby on Rails5\u73af\u5883\uff0c\u7136\u540e\u4e0eGitHub\u8fdb\u884c\u8fde\u63a5\" \/>\n<meta property=\"og:description\" content=\"\u5173\u4e8e\u5728Macbook Pro 2016\u4e0a\u5b89\u88c5Vagrant\uff0c\u5e76\u6784\u5efaRuby on Rails5\u73af\u5883\uff0c\u7136\u540e\u7684\u6280\u672f\u6587\u7ae0\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u5728macbook-pro-2016\u4e0a\u5b89\u88c5vagrant\uff0c\u5e76\u6784\u5efaruby-on-rails5\u73af\u5883\uff0c\u7136\u540e\u4e0egithub\u8fdb\u884c\u8fde\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-03-20T13:29:01+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-11T13:12:27+00:00\" \/>\n<meta name=\"author\" content=\"\u6e05, \u626c\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u6e05, \u626c\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8macbook-pro-2016%e4%b8%8a%e5%ae%89%e8%a3%85vagrant%ef%bc%8c%e5%b9%b6%e6%9e%84%e5%bb%baruby-on-rails5%e7%8e%af%e5%a2%83%ef%bc%8c%e7%84%b6%e5%90%8e%e4%b8%8egithub%e8%bf%9b%e8%a1%8c%e8%bf%9e\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8macbook-pro-2016%e4%b8%8a%e5%ae%89%e8%a3%85vagrant%ef%bc%8c%e5%b9%b6%e6%9e%84%e5%bb%baruby-on-rails5%e7%8e%af%e5%a2%83%ef%bc%8c%e7%84%b6%e5%90%8e%e4%b8%8egithub%e8%bf%9b%e8%a1%8c%e8%bf%9e\/\",\"name\":\"\u5728Macbook Pro 2016\u4e0a\u5b89\u88c5Vagrant\uff0c\u5e76\u6784\u5efaRuby on Rails5\u73af\u5883\uff0c\u7136\u540e\u4e0eGitHub\u8fdb\u884c\u8fde\u63a5 - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-03-20T13:29:01+00:00\",\"dateModified\":\"2025-08-11T13:12:27+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/cb5556d2501da73d864cac945e8d9461\"},\"description\":\"\u5173\u4e8e\u5728Macbook Pro 2016\u4e0a\u5b89\u88c5Vagrant\uff0c\u5e76\u6784\u5efaRuby on Rails5\u73af\u5883\uff0c\u7136\u540e\u7684\u6280\u672f\u6587\u7ae0\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8macbook-pro-2016%e4%b8%8a%e5%ae%89%e8%a3%85vagrant%ef%bc%8c%e5%b9%b6%e6%9e%84%e5%bb%baruby-on-rails5%e7%8e%af%e5%a2%83%ef%bc%8c%e7%84%b6%e5%90%8e%e4%b8%8egithub%e8%bf%9b%e8%a1%8c%e8%bf%9e\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8macbook-pro-2016%e4%b8%8a%e5%ae%89%e8%a3%85vagrant%ef%bc%8c%e5%b9%b6%e6%9e%84%e5%bb%baruby-on-rails5%e7%8e%af%e5%a2%83%ef%bc%8c%e7%84%b6%e5%90%8e%e4%b8%8egithub%e8%bf%9b%e8%a1%8c%e8%bf%9e\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8macbook-pro-2016%e4%b8%8a%e5%ae%89%e8%a3%85vagrant%ef%bc%8c%e5%b9%b6%e6%9e%84%e5%bb%baruby-on-rails5%e7%8e%af%e5%a2%83%ef%bc%8c%e7%84%b6%e5%90%8e%e4%b8%8egithub%e8%bf%9b%e8%a1%8c%e8%bf%9e\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u5728Macbook Pro 2016\u4e0a\u5b89\u88c5Vagrant\uff0c\u5e76\u6784\u5efaRuby on Rails5\u73af\u5883\uff0c\u7136\u540e\u4e0eGitHub\u8fdb\u884c\u8fde\u63a5\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/cb5556d2501da73d864cac945e8d9461\",\"name\":\"\u6e05, \u626c\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/32a4239de8ff29adace466261d309424a1e5fe9f7e3036bf89fe03f2e3dbe717?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/32a4239de8ff29adace466261d309424a1e5fe9f7e3036bf89fe03f2e3dbe717?s=96&d=mm&r=g\",\"caption\":\"\u6e05, \u626c\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/qingyang\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8macbook-pro-2016%e4%b8%8a%e5%ae%89%e8%a3%85vagrant%ef%bc%8c%e5%b9%b6%e6%9e%84%e5%bb%baruby-on-rails5%e7%8e%af%e5%a2%83%ef%bc%8c%e7%84%b6%e5%90%8e%e4%b8%8egithub%e8%bf%9b%e8%a1%8c%e8%bf%9e\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u5728Macbook Pro 2016\u4e0a\u5b89\u88c5Vagrant\uff0c\u5e76\u6784\u5efaRuby on Rails5\u73af\u5883\uff0c\u7136\u540e\u4e0eGitHub\u8fdb\u884c\u8fde\u63a5 - Blog - Silicon Cloud","description":"\u5173\u4e8e\u5728Macbook Pro 2016\u4e0a\u5b89\u88c5Vagrant\uff0c\u5e76\u6784\u5efaRuby on Rails5\u73af\u5883\uff0c\u7136\u540e\u7684\u6280\u672f\u6587\u7ae0","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/\u5728macbook-pro-2016\u4e0a\u5b89\u88c5vagrant\uff0c\u5e76\u6784\u5efaruby-on-rails5\u73af\u5883\uff0c\u7136\u540e\u4e0egithub\u8fdb\u884c\u8fde\/","og_locale":"zh_CN","og_type":"article","og_title":"\u5728Macbook Pro 2016\u4e0a\u5b89\u88c5Vagrant\uff0c\u5e76\u6784\u5efaRuby on Rails5\u73af\u5883\uff0c\u7136\u540e\u4e0eGitHub\u8fdb\u884c\u8fde\u63a5","og_description":"\u5173\u4e8e\u5728Macbook Pro 2016\u4e0a\u5b89\u88c5Vagrant\uff0c\u5e76\u6784\u5efaRuby on Rails5\u73af\u5883\uff0c\u7136\u540e\u7684\u6280\u672f\u6587\u7ae0","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u5728macbook-pro-2016\u4e0a\u5b89\u88c5vagrant\uff0c\u5e76\u6784\u5efaruby-on-rails5\u73af\u5883\uff0c\u7136\u540e\u4e0egithub\u8fdb\u884c\u8fde\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-03-20T13:29:01+00:00","article_modified_time":"2025-08-11T13:12:27+00:00","author":"\u6e05, \u626c","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u6e05, \u626c","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"1 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8macbook-pro-2016%e4%b8%8a%e5%ae%89%e8%a3%85vagrant%ef%bc%8c%e5%b9%b6%e6%9e%84%e5%bb%baruby-on-rails5%e7%8e%af%e5%a2%83%ef%bc%8c%e7%84%b6%e5%90%8e%e4%b8%8egithub%e8%bf%9b%e8%a1%8c%e8%bf%9e\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8macbook-pro-2016%e4%b8%8a%e5%ae%89%e8%a3%85vagrant%ef%bc%8c%e5%b9%b6%e6%9e%84%e5%bb%baruby-on-rails5%e7%8e%af%e5%a2%83%ef%bc%8c%e7%84%b6%e5%90%8e%e4%b8%8egithub%e8%bf%9b%e8%a1%8c%e8%bf%9e\/","name":"\u5728Macbook Pro 2016\u4e0a\u5b89\u88c5Vagrant\uff0c\u5e76\u6784\u5efaRuby on Rails5\u73af\u5883\uff0c\u7136\u540e\u4e0eGitHub\u8fdb\u884c\u8fde\u63a5 - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-03-20T13:29:01+00:00","dateModified":"2025-08-11T13:12:27+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/cb5556d2501da73d864cac945e8d9461"},"description":"\u5173\u4e8e\u5728Macbook Pro 2016\u4e0a\u5b89\u88c5Vagrant\uff0c\u5e76\u6784\u5efaRuby on Rails5\u73af\u5883\uff0c\u7136\u540e\u7684\u6280\u672f\u6587\u7ae0","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8macbook-pro-2016%e4%b8%8a%e5%ae%89%e8%a3%85vagrant%ef%bc%8c%e5%b9%b6%e6%9e%84%e5%bb%baruby-on-rails5%e7%8e%af%e5%a2%83%ef%bc%8c%e7%84%b6%e5%90%8e%e4%b8%8egithub%e8%bf%9b%e8%a1%8c%e8%bf%9e\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8macbook-pro-2016%e4%b8%8a%e5%ae%89%e8%a3%85vagrant%ef%bc%8c%e5%b9%b6%e6%9e%84%e5%bb%baruby-on-rails5%e7%8e%af%e5%a2%83%ef%bc%8c%e7%84%b6%e5%90%8e%e4%b8%8egithub%e8%bf%9b%e8%a1%8c%e8%bf%9e\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8macbook-pro-2016%e4%b8%8a%e5%ae%89%e8%a3%85vagrant%ef%bc%8c%e5%b9%b6%e6%9e%84%e5%bb%baruby-on-rails5%e7%8e%af%e5%a2%83%ef%bc%8c%e7%84%b6%e5%90%8e%e4%b8%8egithub%e8%bf%9b%e8%a1%8c%e8%bf%9e\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u5728Macbook Pro 2016\u4e0a\u5b89\u88c5Vagrant\uff0c\u5e76\u6784\u5efaRuby on Rails5\u73af\u5883\uff0c\u7136\u540e\u4e0eGitHub\u8fdb\u884c\u8fde\u63a5"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/cb5556d2501da73d864cac945e8d9461","name":"\u6e05, \u626c","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/32a4239de8ff29adace466261d309424a1e5fe9f7e3036bf89fe03f2e3dbe717?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/32a4239de8ff29adace466261d309424a1e5fe9f7e3036bf89fe03f2e3dbe717?s=96&d=mm&r=g","caption":"\u6e05, \u626c"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/qingyang\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8macbook-pro-2016%e4%b8%8a%e5%ae%89%e8%a3%85vagrant%ef%bc%8c%e5%b9%b6%e6%9e%84%e5%bb%baruby-on-rails5%e7%8e%af%e5%a2%83%ef%bc%8c%e7%84%b6%e5%90%8e%e4%b8%8egithub%e8%bf%9b%e8%a1%8c%e8%bf%9e\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/26425","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=26425"}],"version-history":[{"count":3,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/26425\/revisions"}],"predecessor-version":[{"id":110972,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/26425\/revisions\/110972"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=26425"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=26425"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=26425"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}