Apa yang dilakukan RunAsDate adalah sebagai berikut:
RunAsDate mencegat panggilan API kernel yang mengembalikan tanggal dan waktu saat ini (GetSystemTime, GetLocalTime, GetSystemTimeAsFileTime), dan mengganti tanggal/waktu saat ini dengan tanggal/waktu yang Anda tentukan.
Di Linux Anda memiliki beberapa opsi untuk melakukan hal yang sama:
-
Jika Anda bisa mendapatkan program versi Windows, Anda mungkin bisa menjalankan RunAsDate di bawah Wine (tapi hati-hati dengan bug terbaru).
-
Temukan perpustakaan pembungkus untuk melakukan ini, atau tulis perpustakaan Anda sendiri. Beberapa opsi diberikan di bawah ini.
-
Gunakan Mesin Virtual. Ini berlebihan, tetapi karena OS di VM tamu benar-benar terpisah dari host yang mendasarinya, Anda dapat mengatur waktu sistemnya menjadi sesuatu yang sama sekali berbeda. Penyiapannya mungkin lebih cepat daripada opsi lainnya.
Opsi 2 dapat diselesaikan dengan metode yang berbeda, tergantung pada apa yang Anda coba jalankan. Jawaban DaveParillo di bawah tautan ke pendekatan DIY yang menjelaskan berbagai metode dan menyertakan kode untuk dapat dieksekusi. Beberapa opsi lain meliputi:
-
datefudge
, tersedia di repositori Debian/Ubuntu dan tempat lain. -
Modul perl Time-Fake, juga di repositori Debian sebagai paket
libtime-fake-perl
. -
Pustaka Pramuat FakeTime (alias
libfaketime
, freshmeat link), pustaka yang dapat mencegat panggilan sistem dalam binari yang terhubung secara dinamis. Tersedia di repositori Debian untuk Squeeze dan Sid.
Saya memiliki masalah yang sama dalam menemukan alternatif untuk RunAsDate di Linux Ubuntu, dan saya menemukan solusi ini.
Saya membuat peluncur program yang ingin saya gunakan dengan RunAsDate. Jika perangkat lunak yang ingin Anda gunakan bernama Foo, buat file di desktop Anda bernama Foo.desktop, dan modifikasi menggunakan gedit atau editor teks serupa. Kemudian tambahkan baris kode berikut:
[Desktop Entry]
Name=Foo
Comment=Runs the Foo application
Exec=sh -c "sudo date --set '01 Jan 2008 12:00:00'; path/to/Foo; sudo timedatectl set-ntp no; sudo timedatectl set-ntp yes;"
Icon=path/to/icon.png
Terminal=true
Type=Application
StartupNotify=true
Anda hanya perlu mengubah informasi Nama, Komentar, dan Ikon dengan sumber daya Anda yang sebenarnya.
Opsi Exec mengubah tanggal sistem untuk sesi saat Anda menggunakan aplikasi, lalu ketika Anda selesai, secara otomatis menyinkronkan ulang tanggal sistem.