GitHub Actionsが全成功かつパッチ/マイナーアップデートの場合は、Dependabotが作成したPRを自動マージする設定

GitHub Actionsが全成功かつパッチ/マイナーアップデートの場合は、Dependabotが作成したPRを自動マージする設定

前書き 今どきは、zero dependency(依存なし)で開発を進めるよりも、便利なOSS(ライブラリ)を利用してサクッと開発する方が多いのではないでしょうか。他の人が開発したライブラリは日々改良されていくので、ライブラリ更新をサボっていると「自分のOSSが知らない間に動かなくなってしまった!」という状況になるかもしれません。 ...

October 11, 2023 · 5 min
GitHub ActionsでBSD(FreeBSD、OpenBSD、NetBSD、Dragonfly BSD)のユニットテスト環境を構築する方法

GitHub ActionsでBSD(FreeBSD、OpenBSD、NetBSD、Dragonfly BSD)のユニットテスト環境を構築する方法

前書き:BSDはクロスプラットフォーム対応の鬼門 私は、GolangでOSSを開発することが多く、Golangは様々なOS向けの実行バイナリを簡単に作成できる特徴があります。この特徴を活かして、「クロスプラットフォーム対応しよう!」と考えるのは自然なことです。 ...

September 16, 2023 · 5 min
ドスパラのTHIRDWAVE VF-AD4にelementary OS(Ubuntu派生)を入れた感想

ドスパラのTHIRDWAVE VF-AD4にelementary OS(Ubuntu派生)を入れた感想

前書き:安価なノートPC VF-AD4を購入しました 私は以前から、物書きやコードリーディングの用途で、ノートPCの購入を検討していました。 で、2020年 賞与をいただいたタイミングで、ドスパラ THIRDWAVE VF-AD4の購入に踏み切りました。お金をケチって整備品を購入したので、27,755円!安い! ...

January 2, 2021 · 7 min
【環境構築】Raspberry PiにPlex Media Serverをインストール【Kodi、Embyとの比較】

【環境構築】Raspberry PiにPlex Media Serverをインストール【Kodi、Embyとの比較】

前書き:メディアサーバの候補はどれか 撮りためた写真や動画、購入した音楽などが増えてくると、ローカルで管理するよりもメディアサーバで管理した方が家族にも共有しやすくて便利です。 Raspbery Piをメディアサーバとして運用する事を考え、使いやすそうなアプリを探した結果、Plex、Kodi、Embyの3種類が候補に上がりました。 ...

October 31, 2020 · 7 min
【Tips】何度も繰り返す開発環境構築をMakefileとシェルスクリプトで楽にする

【Tips】何度も繰り返す開発環境構築をMakefileとシェルスクリプトで楽にする

前書き:環境構築は面倒だから、楽をしたい 開発環境の構築は、その規模の大小に関わらず、面倒な作業です。 環境構築の面倒な部分 忘れてしまった環境構築手順を思い出す事 設定ファイルの修正(数が多いと特に面倒) パッケージマネージャが使えない場合、アプリの手動ビルド&インストール 依存関係が自動解決できない場合、依存関係を調査 構築を複数回繰り返す事(自宅/会社PCへの対応あるいは環境を壊した時) 環境構築は、プログラミングをする前段階の作業ですので、ここで消耗したくありません。 ...

October 29, 2020 · 7 min
【環境構築】Raspberry Pi 4台で作るKubernetesクラスタ

【環境構築】Raspberry Pi 4台で作るKubernetesクラスタ

前書き:憧れのラズパイクラスタ Raspberry Piでスパコンを構築する取り組みは昔からありましたが、最近は「Kubernetesクラスタを作ったよ」という報告が増えてきました。私もラズパイ4(8GB)を一台購入してラズパイが合計4台となったのをキッカケに、憧れのラズパイクラスタに手を出してみました! ...

September 27, 2020 · 9 min
【環境構築】fish shellを用いたDebian環境にSDKMANおよびJava(JDK)をインストールする方法

【環境構築】fish shellを用いたDebian環境にSDKMANおよびJava(JDK)をインストールする方法

前書き:SDKMANはbash(もしくはzsh)前提 SDKMANは、JDK(Java開発環境)やGroovy、Scala、Gradleなどのバージョン管理ツールです。主に、JVM系のツールを管理します。Rubyのrbenv、Pythonのpyenvと同様の立ち位置のツールであり、CLIから任意のバージョンのソフト(例:Java)をインストール/使用/削除できます。 SDKMANの公式サイトに書かれている通り、SDKMANはbashで実装されています。そのため、Login Shellがbashの場合は問題なく動作しますが、fish環境では実行時にエラーが出てしまいます。 ...

August 30, 2020 · 5 min
【環境構築】Debian 10にSteamをインストールする方法:glXChooseVisual failedエラー回避

【環境構築】Debian 10にSteamをインストールする方法:glXChooseVisual failedエラー回避

前書き:Steam公式はLinuxをサポート済み Steamは、PCゲームの購入ができるプラットフォームであり、2012年からLinux環境でも動作します。Debian公式サイトにSteamの導入方法を紹介した記事がありますが、グラフィックボードがNVIDIA環境の場合は追加手順が必要です。 本記事では、追加手順を含めて、Steamのインストール方法を紹介します。 ...

August 28, 2020 · 3 min
元Win/MacユーザがメインPCをLinux(Debian)にした感想

元Win/MacユーザがメインPCをLinux(Debian)にした感想

前書き 本記事では、メインPCをLinuxに変えて良かった事/不便だった事を紹介します。 前提情報ですが、私のPC使用歴はWindowsが18年(Win2000〜Win10)、Macが8年(OS X 10.8〜macOS 10.15)、Linuxが4年(Debian8〜10)です。WindowsとLinuxは仕事で使用しており、ターミナルでのコマンド操作(CLI)に苦手意識はありません。むしろ、CLIが好きです。 ...

August 26, 2020 · 7 min
環境構築:Debian 10(buster) にPostgreSQL 11をインストールし、新規DBを作成する方法

環境構築:Debian 10(buster) にPostgreSQL 11をインストールし、新規DBを作成する方法

前書き PostgreSQLは、オープンソースのオブジェクト関係リレーショナルデータベース関係システム(ORDBMS)です。2020年時点のシェアランキングは、4位です。やや人気のないDBと言えるでしょう。 シェア1位のOracle DatabaseおよびMicrosoft SQL Serverは、有償です(Microsoft SQL Severは無償版も存在)。そのため、PostgreSQLは同じくオープンソースであるMySQL(シェア2位)と比較される機会が多いです。PostgreSQLは高機能・堅牢な設計、MySQLは速度に重きを置いた設計であり、用途に応じて使い分けられるようです。 ...

March 20, 2020 · 7 min
autofsを用いてHDD/SSD/USBメモリを起動時に自動マウントする方法(Debian)

autofsを用いてHDD/SSD/USBメモリを起動時に自動マウントする方法(Debian)

前書き 本記事では、autofsを用いて、HDD/SSD/USBメモリ(SATA接続 or M.2接続 or USB接続)を自動的にマウントする方法を紹介します。 ...

October 5, 2019 · 4 min
gdisk/mkfsコマンドで2TB以上の大容量HDDをフォーマットする方法

gdisk/mkfsコマンドで2TB以上の大容量HDDをフォーマットする方法

前書き:何故HDDを2TBまでしか認識しないか 本記事では、gdisk/mkfsコマンドを用いて2TB超のHDDをフォーマットする方法を紹介します。 前提知識ですが、HDDは2TBの壁が存在します。HDDは、MBR(Master Boot Record)形式を用いて、パーティション(領域)をセクター単位で管理しています。通常のHDDは、セクターサイズが512Byteであり、パーティション内のセクター開始位置とセクター数の管理には4Byte(32bit)を使用します。この制約によって、「最大2TB(アクセスできるセクター数×セクターサイズ = 2の32乗×512)」までしか管理できません。 ...

October 5, 2019 · 6 min
Debian10をRyzen 3800X環境で動かそうとしてハマった内容(グラボ必須、BIOS設定、Kernel設定)

Debian10をRyzen 3800X環境で動かそうとしてハマった内容(グラボ必須、BIOS設定、Kernel設定)

前書き 増税前(2019年9月)に、自作PCパーツをドサッと買いました。 https://twitter.com/ARC_AED/status/1177817660777582592 構成は、下表の通りです。評判の良い第三世代Ryzen CPUを中心に据えつつ、メモリ量を現状の32GBから64GBに増やし、ストレージも複数OSをインストール可能な環境を目指しました。 ...

September 29, 2019 · 9 min
Terminalベースのブラウザw3m

Terminalベースのブラウザw3m

前書き 前回、キーボードのみで操作を完結させる手段として、keynavを紹介しました。 マウスポインタをキーボードで操作するkeynav 同じように、キーボードで操作が完結できるw3mを本記事で紹介します。w3m(WWW-wo-Miru)は、日本人が作成したテキストベースWebブラウザです。端末上でWeb検索作業できますが、使いづらい部分があったため、それらを補うスクリプトも本記事に記載します。 検証環境 _,met$$$$$gg. nao@debian ,g$$$$$$$$$$$$$$$P. ---------- ,g$$P" """Y$$.". OS: Debian GNU/Linux 10 (buster) x86_64 ,$$P' `$$$. Kernel: 4.19.0-6-amd64 ',$$P ,ggs. `$$b: Uptime: 46 minutes `d$$' ,$P"' . $$$ Packages: 2476 (dpkg) $$P d$' , $$P Shell: fish 3.0.2 $$: $$. - ,d$$' Resolution: 2560x1080 $$; Y$b._ _,d$P' DE: Cinnamon 3.8.8 Y$$. `.`"Y$$$$P"' WM: Mutter (Muffin) `$$b "-.__ WM Theme: cinnamon (Albatross) `Y$$ Theme: BlackMATE [GTK2/3] `Y$$. Icons: gnome [GTK2/3] `$$b. Terminal: gnome-terminal `Y$$b. CPU: Intel i3-6100U (4) @ 2.300GHz `"Y$b._ GPU: Intel HD Graphics 520 `""" Memory: 2974MiB / 32060MiB w3mのインストール方法 $ sudo apt update $ sudo apt install w3m $ sudo apt install w3m-img (注釈)端末上で画像を表示したい場合はインストール w3mの起動方法 [起動書式] ...

September 15, 2019 · 2 min
マウスポインタをキーボードで操作するkeynav

マウスポインタをキーボードで操作するkeynav

前書き Linuxエンジニアの中には、マウスを嫌う人が居ます。なるべくキーボードで操作を完結させる事を美徳と考える人(変人)です。しかし、マウスを完全に排除したくても、マウス(マウスポインタ)で無ければ操作できないタイミングがあります。 ...

September 15, 2019 · 3 min
【Vim8.1.xから標準機能】VimからGDBを起動する方法(マウスでGDBを操作可能)

【Vim8.1.xから標準機能】VimからGDBを起動する方法(マウスでGDBを操作可能)

前書き GDBをリッチなText User interface環境で実行するツールは、以前から複数ありました。例えば、 CGDB:ViライクなキーバインドのGDBフロントエンド GDB TUI mode:EmacsライクなキーバインドのGDB標準のTUI環境(オプションtui) NeoDebug:Vim用GDBフロントエンドプラグイン。Vim標準(Termdebug)より高機能 などがあります。 ...

September 14, 2019 · 4 min
Linux Kernel Tree内で自作Kernelモジュールをビルドする方法(MakefileとKconfigの書き方)

Linux Kernel Tree内で自作Kernelモジュールをビルドする方法(MakefileとKconfigの書き方)

前書き 過去の記事(環境構築: Linux Kernelモジュールの作成準備)では、 Linux Kernelソースコード 自作Kernelモジュール を分離して管理していました。ディレクトリ構成は、以下のような状態です。 ...

July 15, 2019 · 7 min
環境構築:ユーザフレンドリーで補完機能の強力なfishへ移行(Login shellをbashからfishへ移行)

環境構築:ユーザフレンドリーで補完機能の強力なfishへ移行(Login shellをbashからfishへ移行)

前書き 本記事では、CLI(Terminal)で用いるinteractive shellを**fish(friendly interactive shell)に移行する方法を記載します。fishは、Debian環境のdefault shellであるdash(POSIX互換のash拡張)やlogin shellであるbash**よりも優れた点が多いです。 ...

June 15, 2019 · 6 min
環境構築:Debianソースコードパッケージをビルドする方法(debソースパッケージ構築ツールのインストール)

環境構築:Debianソースコードパッケージをビルドする方法(debソースパッケージ構築ツールのインストール)

前書き 過去の記事で、debソースパッケージの取得方法を示しました。 Linuxコマンドのソースコードを取得する方法(Debian環境):オリジナルコマンド作成前の勉強向け ソースコードを取得したら、自身で改変し、ビルドも試したくなる筈です。そのため、本記事では、debソースパッケージをビルドする方法を示します。debソースパッケージの取得に関する設定は、上記の過去記事を参照して下さい。 ...

June 1, 2019 · 4 min
neomutt

環境構築:Terminal(CLI)向けメーラー"Neomutt"でGmailを送受信するための設定

前書き Neomuttは、Command Line Interface(CLI)で使用するメールクライアントです。mutt(1995年に登場したメーラー)をforkしたプロジェクトであり、その上位互換となっています。CLI環境でメールを読む理由は、動作が快適な事や省メモリである事が挙げられます。 ...

June 1, 2019 · 9 min
環境構築:Redox向けcoreutils(Rust)のCode Reading準備およびReading対象コマンド一覧

環境構築:Redox向けcoreutils(Rust)のCode Reading準備およびReading対象コマンド一覧

前書き:Redox版coreutilsを読む理由 Redoxプロジェクトが開発しているcoreutilsを読む理由は、「(Rust初心者の私が)Rustを学習する」ためです。Redoxプロジェクトに関わるコードは、基本的にRustで書かれています。何故、Redox(Kernel)ではなくて、coreutilsを読むのかと言えば、 Kernelを読めるほど、私がRustに慣れていない RedoxプロジェクトのCoreutilsは小規模 CoreutilsはUnix/Linuxコマンドのため、私が機能を把握済み という理由です。 ...

May 3, 2019 · 7 min
【Desktop entry】Linux環境でデスクトップアイコン(ショートカット)をfreedesktop.org仕様で作成する方法

【Desktop entry】Linux環境でデスクトップアイコン(ショートカット)をfreedesktop.org仕様で作成する方法

前書き 本記事では、既存アプリや自作アプリのショートカットを作成したい場合、デスクトップアイコン(ショートカット)を用意する方法を示します。Linuxは、複数のデスクトップ環境(GNOME、MATE、KDEなど)が存在しますが、手順はX Window System環境であれば同一です。その理由は、デスクトップアイコン(ショートカット)仕様がfreedesktop.orgによって(半標準として)定められているためです。 ...

March 30, 2019 · 8 min
Raspberry Pi3向けのセキュアSSH接続設定(公開鍵認証、rootアクセス禁止、ログインユーザ設定など)

Raspberry Pi3向けのセキュアSSH接続設定(公開鍵認証、rootアクセス禁止、ログインユーザ設定など)

前書き:SSHをよりセキュアに SSH(Secure SHell)は、通信を暗号化した状態でリモートPCに接続するソフトウェアです。SSHは便利な反面、外部PCからの接続を許可するため、セキュリティ対策が必要です。本記事では、SSHのセキュリティ対策設定を記載します。Raspberry Pi3前提で記載しますが、他の環境でも同じ内容が(ほぼ)実施可能です。 ...

March 26, 2019 · 6 min
Raspberry Pi3をsambaファイルサーバ化し、Linux/Mac/Winでファイル共有(外付けSSDを使用)

Raspberry Pi3をsambaファイルサーバ化し、Linux/Mac/Winでファイル共有(外付けSSDを使用)

前書き 家庭内にLinux/Mac/Windows環境が存在する場合、各PCから写真などを閲覧する事が手間な場合があります。クラウドが一つの解決策ですが、写真はサイズが大きいため、クラウドを無料使用できる範囲を超えます(あと、クラウドは同期が遅い)。そこで、各PCでファイルを共有するため、Rapsberry Pi3をsambaファイルサーバ化します。sambaはUNIX系OS上でWindows互換のファイルサーバ・プリントサーバを立ち上げるOSSです。 ...

March 24, 2019 · 7 min
Raspberry Piに固定IPを割り当てる方法

Raspberry Piに固定IPを割り当てる方法

前書き Raspberry Piに他PCからSSHなどでアクセスする場合、IPアドレスが必要です。IPアドレスがDHCPで動的に割り当てられる場合、都度Raspberry Pi3のIPアドレスを調べなければなりません。その手間を無くすため、IPアドレスを固定化します。 ...

March 24, 2019 · 5 min
UserLAnd

AndroidにLinux環境を構築する"UserLAnd"がソースリーディング環境(スマホ用)として最適

前書き AndroidにLinuxを導入する試みは、以前からありました。この試みは、AndroidのKernel部分が“Linux Kernel”(Linuxと共通)ですから、自然な発想と考えられます。過去の例で言えば、「Ubuntu(Debian)をAndroid端末に導入」したケースがあります。しかし、これまでのAndroidのLinux化は、煩雑な手順が必要、かつ失敗した場合に端末が文鎮化してしまうリスクがありました。 ...

March 16, 2019 · 6 min
Debian: 任意のtesting/unstableパッケージのみをinstallする方法(システム全体はstableを維持)

Debian: 任意のtesting/unstableパッケージのみをinstallする方法(システム全体はstableを維持)

前書き Debianパッケージは、基本的な使い方をしていれば、安定版(stable)がシステムにinstallされます。しかし、「使用したいパッケージがstableにない場合」や「より新しいパッケージを使いたい場合」、システムにtesting/unstableパッケージを導入する必要性がでてきます。 ...

March 9, 2019 · 8 min
環境構築: Linux Kernelモジュールの作成準備

環境構築: Linux Kernelモジュールの作成準備

前書き 本記事は、「Linux Kernel Device Driverの雛形作成」や「Linux Kernel内APIを試すためのモジュール作成」を目的として、最低限必要な環境構築手順を記載しています。 ...

January 27, 2019 · 10 min
ccache(compiler cache)によるビルド高速化

ccache(compiler cache)によるビルド高速化

前書き 大規模なプログラムをビルドする場合、数十分〜数時間かかる事があります。ビルド時間が長いと、それだけ開発者の待ち時間が増えるわけですから、短いに越したことはありません。そんなビルド時間を短縮するツールとして、ccacheがあります。 ...

January 26, 2019 · 4 min
Raspberry Pi3にAndroid7.1.1 + Google Play Storeをインストールする方法

Raspberry Pi3にAndroid7.1.1 + Google Play Storeをインストールする方法

前書き 本記事は、Install Android on his Raspberry Piを実践した結果を示します。具体的には、Raspberry Pi3に対して、Android7.1.1とGoogle Play Storeをインストールします。Androidの最新バージョンは、2018年にリリースされた9.x系ですので、やや古いバージョン(2016年時点の最新版)のインストール方法になります。 ...

January 26, 2019 · 7 min