ClamAVを実行できるようにしようかなと思い、Ubunut 22.04に入れて、試してみると
$ sudo clamdscan /opt/
/opt: File path check failure: Permission denied. ERROR
みたいな感じで、エラーになる。なぜかなと思ったら、実際の実行されるユーザーが異なる動きをするようなので、–fdpassのオプションを指定して実行する必要があるらしい。
Challange IT For Future
ClamAVを実行できるようにしようかなと思い、Ubunut 22.04に入れて、試してみると
$ sudo clamdscan /opt/
/opt: File path check failure: Permission denied. ERROR
みたいな感じで、エラーになる。なぜかなと思ったら、実際の実行されるユーザーが異なる動きをするようなので、–fdpassのオプションを指定して実行する必要があるらしい。
プロセスを確認していると、trakcer-storeとか、いらなそうなプロセスが起動しているので、止め方を調べてみると、このあたりには、
$ systemctl --user mask tracker-store.service tracker-miner-fs.service tracker-miner-rss.service tracker-extract.service tracker-miner-apps.service tracker-writeback.service
みたいな感じで実行すれば良いとのことだった。あとは
$ tracker reset --hard
をしておけば完了。
ARM環境でdocker-composeコマンドを使いたいな、と思ったけど、ARM用のバイナリが提供されていない…。どうしたら良いかなとググると、ここによると以下の感じのシェルを使えば良いらしい。
sudo curl -L --fail https://raw.githubusercontent.com/linuxserver/docker-docker-compose/master/run.sh -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose
Ubuntu 20.04でDockerのマルチアーキテクチャのビルドをしようとしているが、docker buildx lsしても以下のような感じでarmが表示されない…。
$ docker buildx ls
NAME/NODE DRIVER/ENDPOINT STATUS PLATFORMS
default * docker
default default running linux/amd64, linux/386
QEMUを入れてみたり、環境変数を設定したところで変わらない。ググってもいまいち良いものがヒットしないのだが、github.com/docker/buildxを読むと、以下を実行すれば良いっぽい。
$ docker run --privileged --rm tonistiigi/binfmt --install all
QEMUも入れておく必要があると思うが、無事にarmが表示されるようになった。
$ docker buildx ls
NAME/NODE DRIVER/ENDPOINT STATUS PLATFORMS
default * docker
default default running linux/amd64, linux/386, linux/arm64, linux/riscv64, linux/ppc64le, linux/s390x, linux/arm/v7, linux/arm/v6
bazelでビルドしようとしたときに、ビルドしようとしているプロジェクトによってはbazelのバージョンに依存して、エラーになったりとかしてハマるケースが多い…。そうすると、bazelの複数のバージョンを自前で管理したりとかは面倒くさすぎる。そのようなときには、bazeliskを使えば良いっぽい。
bazeliskはGoで書かれたBazelのラッパーで、環境変数や設定ファイルで指定されたbazelを利用することができる。インストールはGoが利用できる環境で
$ go get github.com/bazelbuild/bazelisk
とすればよい。あとは、bazelとして、パスが通っているところにシンボリックリンクなどを貼っておけばよい。
$ ln -s which bazelisk
~/bin/bazel
利用する際は、ビルドしたいプロジェクトに.bazelversionとか置いてあれば、そのバージョンでビルドしてくれるようになるが、なければ、.bazelversionファイルにbazelのバージョンを書いて置いておけば、あとは普通にbazelコマンドでビルドできる。
という感じで、たまにTensorflowをビルドしようとして、エラーになってハマるみたいなこともなくなるので、一つ悩みがなくなった今日この頃。