周末的时候,想给小站换个主题,因为目前的主题有点太商务太传统,不够现代。大概浏览了一下,相中了 tale,特别简单的一个主题。然后就是下载,改配置,hugo server 的时候提示 hugo 版本太低,不支持 sass。这个简单,从这里直接下载最新版本即可。结果仍然提示不支持 sass,需要 extended 版本才支持,然而官方只提供了 Linux, Mac 和 Windows 平台的 extended 版本,树莓派的 arm 平台没有 extended 版本。没办法,只有自己动手编译了。
问题就出在这里了。由于惯性思维,想当然地以为树莓派内存小可能编译 hugo 会失败,于是从一开始只考虑在 Mac 和 Linux 下编译。准备工作倒都还比较简单,把 repo clone 下来即可。编译的时候碰到了一点问题,因为官方文档不是很清楚,没有写怎么为其它平台编译,以及编译的各种选项等。于是摸索了一番,得到下面的编译命令:
GOOS=linux GOARCH=arm go build -o hugo --tags extended main.go 很不巧的是,Linux 平台下报这样的错误:
# github.com/wellington/go-libsass/libs ../../go/pkg/mod/github.com/wellington/go-libsass@v0.0.0-20180624165032-615eaa47ef79/libs/sass_number.go:8:9: undefined: SassNumber ../../go/pkg/mod/github.com/wellington/go-libsass@v0.0.0-20180624165032-615eaa47ef79/libs/sass_number.go:151:10: undefined: SassNumber ../../go/pkg/mod/github.com/wellington/go-libsass@v0.0.0-20180624165032-615eaa47ef79/libs/sass_number.go:153:9: undefined: SassNumber ../../go/pkg/mod/github.com/wellington/go-libsass@v0.0.0-20180624165032-615eaa47ef79/libs/sass_number.go:157:10: undefined: SassNumber ../../go/pkg/mod/github.com/wellington/go-libsass@v0.0.0-20180624165032-615eaa47ef79/libs/sass_number.go:159:9: undefined: SassNumber ../../go/pkg/mod/github.com/wellington/go-libsass@v0.0.0-20180624165032-615eaa47ef79/libs/sass_number.go:164:10: undefined: SassNumber ../../go/pkg/mod/github.com/wellington/go-libsass@v0.0.0-20180624165032-615eaa47ef79/libs/sass_number.go:166:9: undefined: SassNumber ../../go/pkg/mod/github.com/wellington/go-libsass@v0.0.0-20180624165032-615eaa47ef79/libs/sass_number.go:170:10: undefined: SassNumber ../../go/pkg/mod/github.com/wellington/go-libsass@v0.0.0-20180624165032-615eaa47ef79/libs/sass_number.go:175:28: undefined: SassNumber .
贷款基础知识之等额本金
前面已经讲过了等额本息,现在来看一下等额本金。
等额本金比等额本息计算起来简单太多了。基本原理就是每月偿还固定比例的本金,以及剩余本金在当月产生的利息。如果手边有贷款合同的话,翻开就会看到等额本金的还款公式为:
$$ 每月还款额 = \frac{借款本金}{还款总期数} + (借款本金-累计已还本金)\cdot 月利率 $$
不妨假设贷款额,也就是本金为 $v$, 月利率为 $r$, 借款期数为 $n$, 第 $k$ 期还款额记为 $x_k$。 则可以列出下表。
期数 剩余本金 当月利息 月供 1 $v$ $v\cdot r$ $\frac{v}{n} + v\cdot r$ 2 $\frac{n-1}{n}\cdot v$ $\frac{n-1}{n}\cdot v\cdot r$ $\frac{v}{n}+\frac{n-1}{n}\cdot v\cdot r$ 3 $\frac{n-2}{n}\cdot v$ $\frac{n-2}{n}\cdot v\cdot r$ $\frac{v}{n}+\frac{n-2}{n}\cdot v\cdot r$ … k $\frac{n-k+1}{n}\cdot v$ $\frac{n-k+1}{n}\cdot v\cdot r$ $\frac{v}{n}+\frac{n-k+1}{n}\cdot v\cdot r$ … n $\frac{1}{n}\cdot v$ $\frac{1}{n}\cdot v\cdot r$ $\frac{v}{n}+\frac{1}{n}\cdot v\cdot r$ 显然,等额本金还款方式下,月供逐渐降低,前期压力很大,后期压力越来越小。仍然举一个实际的例子:贷款100万元,贷款期限为20年,贷款年利率为最新基准利率上浮20%,也就是5.
树莓派修改fstab文件无法启动
多年前买的树莓派2现在仍在正常工作着,主要用作下载机,然后开着samba服务,在小米盒子上放电影什么的,最近都是给小孩看动画片用。当然之前的sd卡内存比较小,加了一个U盘。因为树莓派放在路由器旁边,一年也难得启动一回,所以就没有给U盘配置自动mount。前几天打扫卫生,给路由器和树莓派的换了个小巧的插座,就重启了。然后当天小孩要看动画片的时候发现找不到。这才想起来要去手动mount U盘。
于是晚上搜索了一下,基本思路是通过 blkid 命令查看U盘的UUID,然后在 /etc/fstab 里加上对应的条目即可,最后我加上了下面这条:
UUID=4e578159-c983-42f2-9ac8-e156e819afgf /home/dl/usb ext4 gid=dl,uid=dl 0 0 重启,然后就发现树莓派连接不上了,连接不上了,连接不上了!
那肯定就是因为改了 /etc/fstab 导致的。没办法,又去搜索 fstab 搞坏了怎么办。比较有用的是changed-the-fstab-file-now-stuck-in-a-reboot-loop 以及 emergecy-mode-bad-fstab。需要先把SD卡取出,放入读卡器(还好当时买树莓派送的读卡器没有丢),插上电脑,之后就有三种方法:
在 boot 分区内,找到 cmdline.txt 文件,该文件应该只有一行,在最后加上 init=/bin/sh,然后保存。再将SD卡插回树莓派,启动后就会进入紧急模式,修复 /etc/fstab 文件后再将SD卡取出,在电脑上将 cmdline.txt 文件复原即可。这种方法需要有外接显示器和键盘,操作起来比较费劲,我直接就放弃了。其实主要是因为我的Mac不知道什么原因插上读卡器后没反应,死活识别不了。一开始我还以为是读卡器的问题,后来用Windows电脑试了后才发现读卡器是OK的。 找到一台Linux机器,插上读卡器后,自动mount两个分区,一个是boot分区,另一个就是系统分区,然后直接修改树莓派系统的 /etc/fstab 文件,将错误的行注释或删掉即可。这个的难点是找了一圈也没找到Linux机器,后来没办法就找了一台Windows机器,装了Debian虚拟机,然后搞定。 重新刷一个新系统…… 如果有Linux机器或者Windows上有装Linux虚拟机的话,第2种方法是最快的;其次是第1种方法,不过需要有外接显示器和USB键盘;如果没什么重要数据的话直接刷新系统也可以。
回头有空再研究下 fstab 应该怎样写,目前试一次不成再改回成本有点高。