DockerでUbuntu22(arm64)の環境を実行する必要があったのですが、Segmentation faultで数日悩まされた結果、回避方法が見つかったので共有。 どうもDockerに限らず、Qemuのコマンドqemu-aarch64-staticを使っていると起こることがあるようです。 (Dockerはqemu使って別アーキテクチャのイメージを実行してるっぽいので) エラー ...
DockerでUbuntu22(arm64)の環境を実行する必要があったのですが、Segmentation faultで数日悩まされた結果、回避方法が見つかったので共有。 どうもDockerに限らず、Qemuのコマンドqemu-aarch64-staticを使っていると起こることがあるようです。 (Dockerはqemu使って別アーキテクチャのイメージを実行してるっぽいので) エラー ...
Ubuntuを使ってると、aptのダウンロードURLを自身のプロバイダに近い場所に設定することはよくあると思います。 先日初めてUbuntu22のArm64版を使ったのですがいつも使ってたミラーサイトをそのまま/etc/apt/sources.listに設定したら使えなかったので、設定変更に手間取りました。 サマリ Ubuntuのaptのミラーは公式の一覧から選択しよう ...
アプリケーションを開発してるとエラー発生時の処理とか面倒なところですが、 特に一部のIO Errorって再現し辛くて、テストがおろそかになってました。 調べてみたら、Linuxのデバイスマッパーを使えば簡単にread/writeのIO Errorを再現できることが分かったので、簡単な手順をまとめました。 やりたいこと ファイルのオープン時ではなく、途中までread/writeしてからI ...
お仕事でよくラズパイを使うことがあるのですが、開発用のPCに比べるとCPUの性能はそこまで高くないので、 ネイティブ環境でソフトウェアのビルドをすると結構な時間がかかっちゃいます。 仕事ではかなりまえからdockerコンテナでのクロスビルド環境を整えてたのですが、せっかくなので共有しておこうと思います。 いくつかオープンソースのソフトウェアをビルドするスクリプトも含めてます。 サマリ ...
Linux向けにC/C++でアプリケーションを実装していると、共有ライブラリ読み込み時のライブラリ検索パスに悩まされることがあります。 ldconfigコマンドや環境変数LDLIBRARYPATHで回避したりすることもあるのですが、今回は実行形式や共有ライブラリに直接パスを埋め込めるrpathとrunpathを 使ったので、実際使った場合の挙動を確認してみました。 そもそもr ...