Ubuntu Vagrant Box
花了一点时间写了一个脚本自动更新 Ubuntu 官方的 Vagrant Box 到 Vagrant Cloud。
和 https://vagrantcloud.com/ubuntu 的区别在于:会自动更新版本号,而不是一个版本绑定死 current 链接。
花了一点时间写了一个脚本自动更新 Ubuntu 官方的 Vagrant Box 到 Vagrant Cloud。
和 https://vagrantcloud.com/ubuntu 的区别在于:会自动更新版本号,而不是一个版本绑定死 current 链接。
官方源已经提供了 ruby2.0 但是因为 debian 源处理 bug 删除了 ruby-switch 包,就无法使用 update-alternatives 来切换 ruby 版本了。
目前就只有手工切换一下,命令如下:
1 2 3 4 5 6 7 8 9 10 | sudo rm /usr/bin/ruby /usr/bin/gem /usr/bin/irb /usr/bin/rdoc /usr/bin/erb sudo ln -s /usr/bin/ruby2.0 /usr/bin/ruby sudo ln -s /usr/bin/gem2.0 /usr/bin/gem sudo ln -s /usr/bin/irb2.0 /usr/bin/irb sudo ln -s /usr/bin/rdoc2.0 /usr/bin/rdoc sudo ln -s /usr/bin/erb2.0 /usr/bin/erb sudo gem sources --remove https://rubygems.org/ sudo gem sources -a https://ruby.taobao.org/ sudo gem update --system sudo gem pristine --all |
嗯,顺便把 rubygems 切换到淘宝镜像。不知道什么时候 packagist 也有国内镜像啊;每次本地 composer update 都是在消耗时间。
首先,我所参与的技术团队都是这样的:
其实,这差不多就是为什么要采用 Ubuntu Server 的理由了。
对于服务器版本来说,可选的大约就是 FreeBSD、CentOS、Debian、Ubuntu Server、OpenSuse、Fedora 少数几个。除开 FreeBSD,大约就是 CentOS 与 Debian/Ubuntu Server 的选择。
大多数推崇 CentOS(也包括 FreeBSD)的理由就是稳定、可定制、硬件支持广泛,而实际上隐含的是,他们不更新,对系统也没有灾难处置。
是的。大部分人就是选择一个所谓稳定的系统、安装特定的服务端,然后就不再理会了。希望这台服务器可以省事的运行五年甚至七年。
实际上,对于服务器,我们需要:
是的,我只是一个系统维护工程师,不是系统开发工程师。我需要关注的是安全、稳定、可用。但我不是系统开发,我无法独立去自行同时解决服务端应用软件的安全、稳定、可用。
虽然我可以为了解决可用,选择一个较新版本的开源服务端软件自行编译安装。但是,我需要去关注这个开源项目,订阅相关安全通知,并且在第一时间自行解决问题。
同样我也可以为了解决稳定,事先通过测试比较选取相应软件的最稳定版本,然后不再更新任何东西。但是,安全呢。
服务器不是孤立的。粗放的管理方式存在极大的隐患。而解决隐患,要耗费大量的精力,也包括我的能力。我不是系统开发工程师。
如果你不相信 Ubuntu 官方源的系统开发工程师不能为你提供最新、最安全、最稳定的服务端应用,我们还有 PPA 可用。
一般由专业厂商和团队乃至应用开发团队提供的 Personal Package Archives 源比你自行去解决要专业的多。嗯,除非你本身就是应用的开发工程师,那你更专业~
基于 6.7.2 版本,直接修改的视图和部分控制器、视图助手。也引入了几个中文本地化文件。
代码托管在 https://gitlab.com/larryli/gitlab 默认的 zh 分支。
然后自己也架设了一个 https://code.larryli.cn/ 用来管理代码。
Gitlab 对 Golang 支持不错,项目页面内嵌 go-import meta 数据。
Github 的官方文档有说明如何使用 git 分离一个已存在版本库的子目录到新的版本库。但这玩意就是一次性的。分离之后,父库上的子目录修改没办法自动同步到子库上。
幸好 github 上也有人提供了同步工具 git-subsplit。
使用起来很简单。
首先,你得至少有两个版本库。比如在 github 分别是 https://github.com/yourname/foo 和 https://github.com/yourname/foo-bar 其中,foo-bar 对应 foo/bar 目录。foo-bar 最好是空仓库。
然后检出 foo 到本地,创建 foo/bar 目录,增加点内容。
可以在 foo 本地目录,也可以另找一个地方,执行:
1 | git subsplit init https://github.com/yourname/foo |
设置父版本库。这个只需要一次执行。
等到父版本库有新的 push/pull 后,回到该目录下,执行:
1 | git subsplit update |
更新(pull)父版本库的变更。
最后,执行:
1 | git subsplit publish bar:https://github.com/yourname/foo-bar --heads=master |
同步变更到子版本库。子目录可以多层,也可以同步多个。
最近写小脚本越来越多,基本上都是用 Golang 了,也慢慢习惯使用了 https://gist.github.com 来存放一些脚本。
今天突然发现原来 gist 也可以直接 import 的,于是赶紧把常用的 Die Error 共用了。
Google Creative Lab 为 Raspberry Pi 提供了 Coder 工具,默认是使用 https 访问,用的是自动生成的自签名证书。
我们知道 StartSSL 是免费为个人提供 SSL 证书的,所以可以将 Coder 的自签名证书替换为 StartSSL 的签名证书。
Coder 的证书是放在 /home/coder/coder-dist/coder-base/certs 名称分为为 server.cert 证书和 server.key 私钥。需要注意的是 Coder 目前只支持 PKCS #8 格式的私钥,需要转换。
openssl pkcs8 -topk8 -inform PEM -in startssl.key -outform PEM -nocrypt -out server.key
另外,cert 证书不支持根证书拼接,直接使用 StartSSL 提供的即可。
最后,需要注意两个文件的属主是 coder,key 私钥文件的权限是 600。
终于从废弃的 ubuntu server 11.04 中解脱出来了。
目前这个 VPS 的面板貌似是卖家自行开发的,但服务器位于洛杉矶,访问速度会快很多。
当然,虽然价格便宜了,虚拟机配置倒是大大提升了。
青春早已不在。
你,还安好么?
作为 Google Reader 的重度用户,真的无法接受 Google 关停 Reader 的决定。
对于我来说,90% 的新闻资讯都是来自于 RSS。这其中还有相当分量的技术内容。
GReader 的好处其一是来自 RSS 统一阅读,快速又直接的阅读最新的文章。而且这基本上是我感兴趣的。
其二是历史功能。是的,Google 存储了所有 RSS。使得已经消失的 Atom 继续存在于 Reader 中。只要你曾经订阅过,它就存在。
而现在,它即将消失。
同样在 Reader 上看到别人的文章推荐了 selfoss。自己架设了一个(习惯性使用 https,国外产品对此支持一直很不错)。
问题不少。
首先,OPML 导入功能有问题。我原本给一个 ATOM 设置了好几个 tag,这些 tag 没有自动合并。而是存在好几个不同的 ATOM。
其次是抓取功能。没有提供命令行接口,而是采用前台链接访问的方式。因为我的订阅列表很多,而且有大量的失效内容,处理时间会很长,基本上会超过 Web 服务器的最大处理时间。
最后是阅读功能。快捷键有一点不同,需要适应。而文章的分栏阅读界面也需要适应。