最近发现在Ubuntu16.04下编译Linux 2.6.36的内核会出现一下错误
Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at kernel/timeconst.pl line 373.
/linux-2.6.36/kernel/Makefile:137: recipe for target 'kernel/timeconst.h' failed
make[3]: *** [kernel/timeconst.h] Error 255
/tmp/GmGWZPad:953: recipe for target 'kernel' failed
根据上述提示,直接把内核源码中./kernel/timeconst.pl
第373行的if条件中的defined(@val)
改成@val
,再次编译就可通过了.
Jacob Pan ( jacobpan3g.github.io/cn )
安装ubuntu时,如果不是安装中文版,是默认没有中文输入法的,因为安装中文版的话,home下的各个目录都是中文的,这样用起来比较别扭,我还是比较偏向于安装英文版,然后再把中文输入法手动安装就可以了.
“Setting” – “Language Support”, 此时会提示“语言支持没有完整安装”, 这个可以不用管,可以直接点”Remind Me Later”, 接着在对话框中间点击”Install/Remove Languages…”, 在弹出对话框中找到”Chinese(simplified)”并勾选,点击”Apply”,等待安装完成,logout当前用户。
重新登录后打开“Setting” – “Language Support”,在Keyboard input method system
中选择fcitx
, 然后再logout当前用户
重新登录系统后,桌面右上角的小键盘的就会变成一个小企鹅,代表fcitx启动成功了。点击小企鹅,选择“ConfigureFcitx”,在“Input Method”标签中点击右下角的“+”, 找到“Pinyin”或者“Sunpinyin”,点击”OK”按钮,这样子你就可以通过右上角的小键盘处选择拼音输入法了,亦可以通过<ctrl>+<space>
或<shift>
进行中英文的切换, enjoy it!
现在在ubuntu也可以安装sogou输入法了,sogou官网有提供deb安装包,直接下载下来使用# dpkg -i sogou.deb
就可以安装了.
由于sogou输入法依赖于fcitx,如果安装过程报错可以先安装fcitx, 通过命令# apt-get install fcitx
即可。可以通过$ dpkg -l | grep fcitx
查看系统是否已安装fcitx。
我觉得ubuntu内置的中文输入法也够用了,这里大家可以根据自己的喜好自行选择哈。
Jacob Pan ( jacobpan3g.github.io/cn )
查看当前系统默认xcode
$ xcode-select -p
切换系统默认xcode
# xcode-select -switch /Applications/Xcode.app
当在mac下同时安装多个xcode时,第二个xcode会以xcode 2
来命名,系统会自动把新安装的xcode 2作为默认xcode,由于名字存在空格,在编译一些软件时会存在一些问题。
例如我之前编译libnet
时,根据项目的BUILD-FROM-GIT.txt
开始编译过程, 由于我的默认xcode的名字时xcode 2
, 从而引发了一下错误:
/bin/sh: /Applications/Xcode: No such file or directory
后来我用上述命令把”系统默认xcode”切换成xcode(名字不含 2
的),才能通过编译.
Jacob Pan ( jacobpan3g.github.io/cn )
一般来说,折腾双系统是每一位程序猿都有过的经历,如何在windows7下安装双系统ubuntu呢?今天来给大家介绍一下如何直接在windows7硬盘安装ubuntu,而不需要使用U盘或者光盘,或外置硬盘。
可以直接在官网上找,下载后在windows下使用解压软件找到iso里的initrd.lz
和vmlinuz.efi
(ps:若是安装32位的ubuntu,第二个文件是vmlinuz
,而没有后缀.efi
), 一般会在iso根目录下的casper
里。
把上诉两个文件和镜像本身放在windows任意一个磁盘的根目录下,我这里以f盘为例。
在windows下安装EasyBCD,我现在用的是2.2版本的。完成后打开EasyBCD,在左边选择添加新条目
, 然后选择NeoGrub
标签,点击安装
,此时EasyBCD会自己创建一个引导,很快,不用几秒钟。接着点击旁边的配置
, 在弹出的编辑器中加入一下指令:
title Install Ubuntu
root (hd0,7)
kernel (hd0,7)/vmlinuz.eft boot=casper iso-scan/filename=/ubuntu.iso ro quiet splash locale=zh_CN.UTF-8
initrd (hd0,7)/initrd.lz
其中,有几个地方需要注意一下:
(hd0,7)
是代表第一步准备的镜像和文件所在的磁盘, 在windows下, c盘是(hd0,1)
, d盘是(hd0,5)
, e盘是(hd0,6)
, f盘是(hd0,7)
, 依此类推,第一步中我把镜像以及相关文件都放在了f盘,因此我这里是(hd0,7)
, 大家可根据自己第一步选择的磁盘修改,再次重申一下,无论放在哪个盘,都要放在该磁盘的根目录下vmlinuz.eft
, 这个就是我们第一步所准备的其中一个文件的名字,如果安装的是32位ubuntu,这个文件名字是vmlinuz
, 这里也要做相应的修改filename=/ubuntu.iso
, 斜杠后面的是ubuntu镜像的名字,这里也可以根据自己要安装镜像的名字来自定义。好了,添加上述指令后,保存,关闭。
重启电脑,留意开机界面,会发现多了一个NeoGrub
选项,选中它,就可以进入ubuntu的安装镜像了. (ps: 如果本来已经双系统,开机时选择启动windows,然后在windows启动页面再选择NeoGrub
引导ubuntu镜像)。
在开始安装之前,还有最后一步十分重要的别忘了做 —— “卸载isodevice
分区”
# umount -l /isodevice
若没有卸载iso分区,安装过程会报错的,这一步也是硬盘安装所独有的,大家一定别忘了这一步。这个分区的名字可以通过$ mount | grep isodevice
来查看。
以上步骤我曾经成功在windows 8下安装Ubuntu 12.04和16.04,也尝试过用来安装Centos 6.4, 故理论上上述步骤可以用来windows下硬盘安装一般的linux系统。
后面就可以根据自己的喜好分区,安装ubuntu了,Enjoy yourself!
Jacob Pan ( jacobpan3g.github.io/cn )
若PC上有两张网卡,需要把网卡A的网络共享到网卡B的局域网中,类似路由器wan口到lan口的映射。在windows下十分简单,直接在网络中心
中打开网卡A的共享功能就行,而若在Ubuntu
中,需要一下命令:
# sysctl net.ipv4.ip_forward=1
# iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
其中,eth1是网卡A的ifname
以上是在Ubuntu 16.04
的做法,在Ubuntu 12.04
,可以直接
# echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
Jacob Pan ( jacobpan3g.github.io/cn )
最近在Github Pages上使用Jekyll搭建了个人博客( jacobpan3g.github.io/cn ),当需要添加评论系统时,找了一下国内的几个第三方评论系统,如“多说”,“畅言”,“友言”,“新浪云跟贴”:
再看看disqus,国外比较火的评论系统,但在国内墙了,故也不考虑。
综上,国内几个比较主流的评论系统目前都无法在Github Pages上的个人博客使用, 后面我发现了gitment,一款由国内大神imsun开发的基于github issues的评论系统, 具体介绍请看项目主页( github.com/imsun/gitment )。
目前我已经成功把gitment应用到了自己的Github pages个人博客里,过程中碰了一些壁, 同时发现网上关于gitment的介绍并不多,故写一篇总结,希望可以帮助到大家。
Github头像下拉菜单 > Settings > 左边Developer settings下的OAuth Application > Register a new application,填写相关信息:
Application name
, Homepage URL
, Application description
都可以随意填写Authorization callback URL
一定要写自己Github Pages的URL
(ps: 之前我自己就是在这里碰壁了,调试半天才发现)Register application
按钮,得到Client ID
和Client Secret
如gitment项目页Readme所示,在你需要添加评论系统的地方,一般是_layout/
目录下的 post.html
, 添加一下代码
<div id="gitmentContainer"></div>
<link rel="stylesheet" href="https://imsun.github.io/gitment/style/default.css">
<script src="https://imsun.github.io/gitment/dist/gitment.browser.js"></script>
<script>
var gitment = new Gitment({
owner: 'Your GitHub username',
repo: 'The repo to store comments',
oauth: {
client_id: 'Your client ID',
client_secret: 'Your client secret',
},
});
gitment.render('gitmentContainer');
</script>
需要修改的有4个地方
填写完这4项把代码保存上传到github就可以了。
由于gitment的原理是为每一遍博文以其URL作为标识创建一个github issue, 对该篇博客的评论就是对这个issue的评论。因此,我们需要为每篇博文初始化一下评论系统, 初始化后,你可以在你的github上会创建相对应的issue。
接下来,介绍一下如何初始化评论系统
上面第2步代码添加成功并上传后,你就可以在你的博文页下面看到一个评论框,还 有看到以下错误Error: Comments Not Initialized
,提示该篇博文的评论系统还没初始化
点击Login with GitHub
后,使用自己的github账号登录后,就可以在上面错误信息 处看到一个Initialize Comments
的按钮
(ps: 由于要求回调URL和当前地址一样,故第2步不能在本地调试, 需把代码先上传再调试)
点击Initialize Comments
按钮后,就可以开始对该篇博文开始评论了, 同时也可以在对应的github仓库看到相应的issue
有些读者担心github oauth application的client secret这样明文写在页面上会不会有安全 隐患,我也考虑到这个问题,目前我能想到比较好的解决方法是:注册一个github小号, 在小号里注册oauth application,使用小号app的client secret
有些读者反映登录不成功,请大家一定要确认github oauth application里的回调URL一定要 填写要使用gitment的博客的URL,这一点十分重要
好了,gitment使用介绍到这里,大家若遇到什么问题尽管在下面留言,或者在我的个人博客 ( jacobpan3g.github.io/cn )留言,上面使用的评论系统就是gitment,我会抽空 一一作出回答。
Jacob Pan ( jacobpan3g.github.io/cn )