ESI
20
概要
装置の実験中に ニッチな 環境依存の問題に出くわしたので報告しておきます。
かなり限定的な環境でのトラブルシューティングですが、スタンドアロン版の Linux 用 CNCjs を Slackware Linux で 使おうとすると、「udevadm がねーよ!」と怒られます。
補足事項
※ ダウンロードした CNCjs の使い方:cncjs-app-「使いたいバージョン」-linux-x64.tar.gz をダウンロード・展開し、展開されたフォルダ内でコマンドラインから ./cncjs-app
と打つとスタンドアロン版 CNCjs が起動します。
※ 今回の問題の原因:Slackware Linux では /sbin や /usr/sbin(たぶん /usr/local/sbin も。うろ覚え)が設計上一般ユーザーのコマンドサーチパスにのぼらないこと。
※ Slackware Linux:
エラーメッセージ
以下に抜粋。
2021-07-03T01:52:57.937Z - error service:cncengine { Error: spawn udevadm ENOENT
at Process.ChildProcess._handle.onexit (internal/child_process.js:232:19)
at onErrorNT (internal/child_process.js:407:16)
at process._tickCallback (internal/process/next_tick.js:63:19)
errno: 'ENOENT',
code: 'ENOENT',
syscall: 'spawn udevadm',
path: 'udevadm',
spawnargs: [ 'info', '-e' ] }
問題の回避策
この場合、管理者権限で
ln -s /sbin/udevadm /usr/local/bin/
等と、一般ユーザーに見える場所に udevadm のシンボリックリンクを張っておきます。
他には /dev/ttyUSB0 等の読み書きの権限がユーザーにないとそちらでエラーが出ます。これは gpasswd コマンド等を使って該当ユーザーを “dialout” グループに所属させた後で再度ログインすれば問題ないはず。
他の被害者
同じエラーに遭遇した方のポストが以下。こちらの方は /usr/bin 以下に /sbin/udevadm のリンクを張っていらっしゃいました。
「いいね!」 1