libfaketimeをインストールするワンライナー

2021/06/28に公開

小ネタですが数年おきに使う感があったのでメモ
https://github.com/wolfcw/libfaketime

# 適当なコンテナ
$ docker run --rm -it python bash

# インストール
root@8a7e5352e6cc:/# (cd /&& git clone https://github.com/wolfcw/libfaketime.git && cd /libfaketime/src && make install && echo -e '/usr/local/lib/faketime/libfaketime.so.1' >> /etc/ld.so.preload)
Cloning into 'libfaketime'...
中略
install -Dm0755 faketime "/usr/local/bin/faketime"

# 普通のdate
root@8a7e5352e6cc:/# date
Mon Jun 28 12:16:16 UTC 2021

# fakeしたdate
root@8a7e5352e6cc:/# FAKETIME="@2112-09-03 00:00:00" date
Sat Sep  3 00:00:00 UTC 2112

# 言語にも使われる
root@7365cddcbfc4:/# FAKETIME="@2112-09-03 00:00:00" python
Python 3.9.5 (default, Jun 23 2021, 15:01:51)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import datetime
>>> datetime.datetime.now()
datetime.datetime(2112, 9, 3, 0, 0, 12, 488212)

そんだけ😌

Discussion