我在自己的github上搭建了一个Octopress博客(http://songlee24.github.io/),用于不定期的写一些学习笔记和心得体会。但是有时候由于换了电脑或者重装了linux系统,就需要重新从github上克隆博客仓库到本地。

最近从Ubuntu转战Fedora,为了在Fedora上继续写博客,需要把博客克隆下来,这里做个笔记,以备后用:

一,安装git,重新创建SSH密钥

因为重装了系统,首先需要安装git,这个可以参考github官方教程,在fedora上安装git命令行:

sudo yum install git
git config --global user.name "SongLee24"
git config --global user.email "lisong.shine@qq.com"
git config --global credential.helper cache
git config --global credential.helper 'cache --timeout=3600'

另外,SSH密钥要重新创建添加,参见创建ssh密钥官方教程,命令行:

cd ~/.ssh/   #进入目录
ls -al
ssh-keygen -t rsa -C "lisong.shine@qq.com" #创建新的ssh密钥
ssh-add ~/.ssh/id_rsa #添加新ssh密钥到ssh-agent

注意创建密钥的时候,提示需要“Enter a file in which to save the key”,点击确定就行了,接着会继续要你输入口令(Passphrase),输入你自己的口令。然后,你会发现.ssh文件夹下生成了id_rsa和id_rsa.pub两个文件,将id_rsa.pub文件里面的内容复制到Github的Account Settings里的Add SSH key.

测试是否成功:

ssh -T git@github.com

会需要输入你的口令,然后如果输出下面的信息,表示一切成功:

The authenticity of host 'github.com (207.97.227.239)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)?
Hi username! You've successfully authenticated, but GitHub does not provide shell access.

二,安装Ruby

Fedora上使用RVM,而不是Yum安装最新版本的Ruby。之所以不用Yum,是因为Fedora的Yum源没有Ruby 1.9.3。

#1,安装rvm
$ curl -L get.rvm.io | bash -s stable
#2,使rvm命令生效
$ source ~/.rvm/scripts/rvm
#3,查看可用的ruby版本
$ rvm list known
#4,我安装的是最新版Ruby2.0.0,我应该安装Ruby1.9.3的
$ rvm install 2.0.0

然后是更换Ruby的更新源,因为某些原因。

#查看当前的gem源
$ gem sources -l
#删除该gem源
$ gem sources -r https://rubygems.org/
#添加taobao的源
$ gem sources -a http://ruby.taobao.org/

这个时候,如果你运行下面的命令:

gem install bundler
bundle install

你会发现执行bundle install的时候会出现“Could not locate Gemfile”的错误提示,在网上查了好多资料,说是在你执行命令的文件夹下没有Gemfile文件,所以需要先进入一个项目。于是我先跳到第三步。

三,拉取Octopress仓库内容

1. 创建你要放置博客仓库的目录,然后进入文件夹:

cd MyBlog/octopress/
git init
git remote add origin git@github.com:SongLee24/songlee24.github.com.git
git pull origin

初始化git仓库,添加远程仓库,也就是你自己的github博客仓库地址,pull远程仓库。

2. 然后,切换到source分支,建立github pages:

git checkout source        #切换分支
rake setup_github_pages #建立pages

在执行rake setup_github_pages的时候会出现以下提示:

Could not find rake-0.9.2.2 in any of the sources
Run `bundle install` to install missing gems.

这个时候再执行命令bundle install

OK,成功!

这时候再执行rake setup_github_pages,提示如下:

You have already activated rake 0.9.6, but your Gemfile requires rake 0.9.2.2. Prepending `bundle exec` to your command may solve this.

因为rake版本不一致,所以命令运行不成功。根据提示我在命令前面加上bundle exec

bundle exec rake setup_github_pages

然后它会叫你输入URL:

Enter the read/write url for your repository
(For example, 'git@github.com:your_username/your_username.github.io.git)
or 'https://github.com/your_username/your_username.github.io')
Repository url: git@github.com:SongLee24/songlee24.github.com.git
rm -rf _deploy
mkdir _deploy
cd _deploy
初始化空的 Git 版本库于 /home/songlee/MyBlog/octopress/_deploy/.git/
[master(根提交) 594aab2] Octopress init
1 file changed, 1 insertion(+)
create mode 100644 index.html
cd - ---
## Now you can deploy to git@github.com:SongLee24/songlee24.github.com.git with `rake deploy` ##

终于执行成功!这时候octopress目录下生成了_deploy文件夹。

3. 切换到master分支,进入_deploy目录,拉取master分支:

git checkout master
cd _deploy/
git pull origin master

然后pull的时候又出现了问题,文件index.html出现冲突,当你执行bundle exec rake deploy的时候也提示说:Pull 不可用,因为您尚有未合并的文件。请先在工作区改正文件,然后酌情使用 'git add/rm <file>' 标记解决方案,或者使用 'git commit -a'。

于是运行下面的命令合并冲突

git add index.html
git commit -m "合并冲突"

这时候再执行rake generate和rake deploy发现一切正常了。博客成功克隆到本地,以后就可以正常写博文并提交到Github上了。

附 博客添加和修改后提交的日常命令

rake new_post['Blog Name']

rake generate
rake deploy git add .
git commit -m "commit message"
git push origin source

我的Github博客:http://songlee24.github.com

Fedora下克隆Octopress博客的更多相关文章

  1. 使用Octopress博客 搭建博客

    Octopress介绍 Octopress是一款优秀的静态化博客系统,也是一个本地化的博客系统,之前部落在介绍免费开源Github Pages空间时有提到过Octopress,Github为我们提供长 ...

  2. MAC下搭建Hexo博客

    一.前言 Hexo是一款快速.简洁,基于node.js的强力框架. (1)超快速度:Node.js 所带来的超快生成速度,让上百个页面在几秒内瞬间完成渲染. (2)支持markdown:Hexo 支持 ...

  3. [转] Mac下 快速写博客的软件 MarsEdit

    正文 marsedit最好. 这东西还是收费的,这里, 我给个注册码: Name: The Blade SN: RSME3-DA4KUN-3EL6Y-MXD2X-LYMT9-6KGX8-4 ~~~~~ ...

  4. MAC下搭建个人博客

    安装homebrew ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/inst ...

  5. CentOS 下安装 Hexo 博客

    前言: 之前一直使用Wordpress架构作为博客网站架构,但是现在频频爆出漏洞.实在是不敢用也不想用了,然后群里面有小伙伴用的是 Github 搭建 Hexo 架构博客.就写了这个教程,给自己做个参 ...

  6. 全站之路一路坑(2)——在Apache下部署django博客

    上一篇博客:全栈之路一路坑之使用django开发博客 开发完博客之后,很多后续应用需要博客部署之后才可以使用,这篇文章就来尝试一下将开发好的博客部署到服务器上. 开发阶段,一直使用的是virtuale ...

  7. v80.01 鸿蒙内核源码分析(内核态锁篇) | 如何实现快锁Futex(下) | 百篇博客分析OpenHarmony源码

    百篇博客分析|本篇为:(内核态锁篇) | 如何实现快锁Futex(下) 进程通讯相关篇为: v26.08 鸿蒙内核源码分析(自旋锁) | 当立贞节牌坊的好同志 v27.05 鸿蒙内核源码分析(互斥锁) ...

  8. 运用BT在centos下搭建一个博客论坛

    在日常的工作和学习中,我们都很希望有自己的工作站,就是自己的服务器,自己给自己搭建一个博客或者是论坛,用于自己来写博客和搭建网站论坛.现在我们就用一个简单的方法来教大家如何30分钟内部署一个博客网站. ...

  9. (下一篇博客)提示5G信道

    原本注册这个博客是要不定期更新一些产品的测试内容的 但由于一些个人原因并没有坚持去做到, 每次有点子的时候却没能来得及记下来导致很内容的缺失 接下来将关键点以图片形式 和一些摘要形式先发上来, 已做备 ...

随机推荐

  1. Angular JS (2)

    通过Angular JS的官方教学文档,了解 routeProvider 的用法, angular.module('aaa').config(['$locationProvider','$routeP ...

  2. 盒子模型,top和margin-top

    1. 标准盒子模型: width只是内容的宽度. 元素的总宽度=width + padding*2 +border*2 +margin*2. IE盒子模型: width=内容的宽度 + padding ...

  3. Android Bitmap转换WebP图片导致损坏的分析及解决方案

    背景 作为移动领域所力推的图片格式,WebP图片在商业领域证明了其应有的价值.基于其他格式的横向对比,其在压缩性能表现,及还原度极为优秀,节省大量的带宽开销.基于可观的效益比,团队早前已开始磋商将当前 ...

  4. Angular——自定义服务

    基本介绍 之前我们介绍了angular内置的几种服务,这里我们介绍如何自己定义自己的服务,主要是通过三个方法:factory.service.value 基本使用 factory:可以返回对象,也可以 ...

  5. IE/firefox/chrome 每次都刷新

    IE FIREFOX 1.在firefox的地址栏上输入about:config回车2.找到browser.cache.check_doc_frequency选项,双击将3改成1保存即可. 那么这个选 ...

  6. Xamarin.Forms android实现沉浸式

    在android项目里,这样设置 using System; using Android.App; using Android.Content.PM; using Android.Runtime; u ...

  7. Redis系列(九)--几道面试题

    这里只是一点面试题,想了解更多,可以查看本人的Redis系列:https://www.cnblogs.com/huigelaile/category/1461895.html 1.Redis和Memc ...

  8. Executors工厂类

    newCachedThreadPool 重用之前的线程 适合执行许多短期异步任务的程序. 调用 execute() 将重用以前构造的线程 如果没有可用的线程,则创建一个新线程并添加到池中 默认为60s ...

  9. jquery 时间戳转日期

    搜了一下发现这个时间戳转时间的代码很好用,附上实践的代码 结果如下 / * * 时间戳转日期 * @param timestamp * @returns {*} */ function timesta ...

  10. PAT 1079. 延迟的回文数

    PAT 1079. 延迟的回文数 给定一个 k+1 位的正整数 N,写成 ak...a1a0 的形式,其中对所有 i 有 0 <= ai < 10 且 ak > 0.N 被称为一个回 ...