OS -> Linux

Ubuntu で最新の git コマンドをインストールする方法

結論 リポジトリを手動で追加してから $ sudo apt-get install git を行います。 $ sudo add-apt-repository ppa:git-core/ppa The most current stable version of Git for Ubuntu. For release candidates, go to https://launchpad.net/~git-core/+archiv…

シェルスクリプトでコマンド実行の成否で分岐させる(ワンライナー)

結論 次のような感じになるのではないでしょうか。下記の行の内容は「$ uname -a を行い、その結果の文字列の中に arm という文字が含まれている場合は false を返す」という内容になります。 if [ "$(uname -a | grep arm)" ]; then false; fi 詳細 最初の …

シェルスクリプトを用いて OS(アーキテクチャ)を判別する方法

結論 uname -a コマンドの戻り値をもとに判別します。もっといい方法はあると思いますが*1、一つの方法として。 以下のようなスクリプトになりました。 #!/bin/sh UNAME=$(uname -a) if [ "$(echo $UNAME | grep -q Darwin)" ]; then echo 'Hello, macOS!' e…

Samba を多段に設定した場合、「更新」ができない(ことがある?)

例 以下の例で考えます。X で Samba を設定し、A がそれをマウントし、そしてさらに A で Samba を設定して B がマウントする場合です。 X <-- Samba -- A <-- Samba -- B 結論 B から X の共有ファイルに対し、「作成」はできるが「更新」ができない(上書…

Raspberry Pi で CLI で Wi-Fi を設定する方法

結論 1. /etc/wpa_supplicant/wpa_supplicant.conf を編集する Wi-Fiの接続情報が書かれている /etc/wpa_supplicant/wpa_supplicant.conf を編集します。 $ sudo vim /etc/wpa_supplicant/wpa_supplicant.conf /etc/wpa_supplicant/wpa_supplicant.conf の内…

Debian/Ubuntu ベースのイメージを用いて CircleCI で Yarn をインストールするときにはいきなり sudo apt-get install yarn してはだめ

結論(どうするか) Yarnのパッケージを明示的に指定して、sudo apt-get install -y yarn をしましょう。-run の部分だけを書くと次のとおりです。 - run: name: Install Yarn command: | curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key…

2TB 超え の HDD / SSD を ext4 でフォーマットする方法のコマンドだけを羅列

注意 各コマンドの意味は理解した上で実行しましょう。 コマンドの羅列 $ sudo mkfs.ext4 /dev/sdX Creating journal (262144 blocks):(Enter押下後、しばらく待つ) $ sudo parted /dev/sdX (parted) mklabel gpt Yes/No? Yes(Yesを選択した時点でHDD/SSD…

Ubuntu 18.04 にて jenv を用いて複数のバージョンの Java を使い分ける方法

大まかな流れ jenv をインストールして、シェルの設定を行う java の各バージョンをインストールしていく jenv add コマンドを使って jenv が扱う Java を追加していく jenv global や jenv local コマンドを使って用いる Java のバージョンを切りかえる

openmediavault を使っていて mkfs コマンド で HDD をフォーマットしようとしたら /dev/sdX is mounted; will not make a filesystem here! と怒られたとき

結論 まず /dev/sdX をアンマウントします。 $ sudo umount /dev/sdX アンマウントしたデバイスを openmediavault は自動で再マウントしようとするので、再マウントされる前に mkfs コマンドを以下のように実行します。 $ sudo mkfs.ext4 /dev/sdX mke2fs 1.…

Ubuntu で extundelete をビルドする際に insertionops.cc:36:36: error: ‘const struct ext2_inode’ has no member named ‘i_dir_acl’; did you mean ‘i_file_acl’? というエラーが出る場合

環境 以下の環境で標題のエラーが起きました。 Ubuntu 18.04 (x64) $ sudo apt-get install gcc libc6-dev make libssl-dev zlib1g-dev e2fslibs-dev 済み SourceForge より 0.2.4 をもってきて手元でビルドしました 以下のようなエラーが出ました*1 *1:色が…

Ubuntu で ext2fs をインストールする方法

結論 $ sudo apt-get install e2fslibs 補足 extundelete のビルド時に configure: error: Can't find ext2fs library と怒られた場合はもろもろ下のように入れるとよいです。*-dev が重要です。 $ sudo apt-get install gcc libc6-dev make libssl-dev zlib…

apt-get install するときに Exception ignored in: <function WeakValueDictionary.__init__.<locals>.remove at というエラーが出るとき

結論 Python の 3 を入れる。 エラーの具体例 $ sudo apt-get install exfat-fuse exfat-utils パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下のパッケージが新たにインストールされ…

Raspberry Pi で「ヒアドキュメント用一時ファイルを作成できません: デバイスに空き領域がありません」というエラーが出たとき

結論 /tmp がいっぱいなので、/tmp 配下を適当に削除する。

ext2 / ext3 / ext4 のストレージ(HDD、SSD)に「ラベル」を付ける方法

結論 e2label コマンドを使います。書式は次のとおりです。sudo で実行します。 $ sudo e2label Usage: e2label device [newlabel] 使用例 使用例は次のようになります。 $ sudo e2label /dev/mmcblk0p2 sdcard_main

e2label コマンドを実行すると command not found と表示されるとき

前提 正しくインストールされていることが前提とします*1。 結論 sudo で実行する。 例 sudo なしで実行した場合 $ e2label zsh: command not found: e2label sudo で実行した場合 $ sudo e2label Usage: e2label device [newlabel] *1:$ sudo apt-get insta…

Ubuntu 18.04 LTS で CLI から JDownloader2 を用いる方法

大前提 CLIオンリーの環境でのやりかたを示しています GUI環境がある場合にはより良いやりかたがあるかと思います Webサービスである My JDownloader と連携します [ユーザのクライアント] <-----> [My JDownloader] <-----> [ダウンロード先] という構造に…

Raspbian に mackerel-agent と mackerel-check-plugins をインストールする方法

Mackerel 自体のインストール Raspberry Pi (Raspbian) に Mackerel 本体をインストールする方法は以下のページのとおりです。 このまま起動すると、$ sudo apt-get mackerel-agent status したときに、ディスクの容量が読み取れないエラーが以下のように表…

SSH で接続しようとした際に Failed password for invalid user と出てログインできない場合のチェック点の一つ

Failed password for invalid user Failed password for invalid user というエラーメッセージが出てログインに失敗するとき、様々なチェック点がありますが、一つのチェック点として盲点になりがち(?)な点を挙げます。 該当ユーザが AllowGroups で指定…

SSH (SSHd) で特定のユーザにだけ特定の設定を付与する方法

結論 /etc/ssh/sshd_config の末尾に、Match User ディレクトリを用いて例えば以下のように記述します。すると、hogehogeuser は、sshd_config での全体の設定がどうであれ、パスワードでのログインが許可されます。 Match User hogehogeuser PasswordAuthen…

Ubuntu で パッケージ管理システム である Snap をインストールする方法

結論 $ sudo apt-get install snapd だめなやつ $ sudo apt-get install snap

cron の実行時間が 9時間 ずれるとき

結論(Ubuntu) $ sudo service cron restart 状況 タイムゾーンをチェックして問題ないことが確認できたのだが…… $ date 2019年 6月 26日 水曜日 23:02:39 JST $ strings /etc/localtime TZif2 TZif2 JST-9 crontab では12時実行と設定されているのになぜか…

Visual Studio Code の「Remote - SSH 拡張機能」では Raspberry Pi などの ARMアーキテクチャ のホストに接続できない

注意事項 2019/05/24 現在でのお話です。 状況 標題のとおりになります。夢が広がる拡張機能である Remote - SSH ですが、対象ホストが Intel な Linux でないと接続できません。 接続できなくてひたすら鍵の間違いを疑っててハマってしまったのですが、エラ…

FUJITSU PRIMERGY MX130 S2 に Ubuntu を入れたら再起動時にキーボードが接続されていないとフリーズした

状況 Ubuntu 18.04 $ sudo reboot や $ sudo shutdown --reboot などを実行した後、再起動は行われるのだがログイン画面までたどり着かないでフリーズする 注意 いわゆる「おま環」の可能性が高い BIOS や OS の設定で回避できるのかもしれない たまにキーボ…

Ubuntu 18.04 をインストール中にモニタが真っ暗になる現象を回避する(GeForce を使っている場合)

前提 以下の環境です。 マシン FUJITSU PRIMERGY MX130 S2 グラフィックカード GeForce GT 520 モニタ LCD-7000VH HDMI 接続 結論 こちらに書いてあるとおりです。 qiita.com 具体的には、インストールオプションを手動で書き換える必要があるということです…

Ubuntu 18.04 に PostgreSQL 11 をインストールする

apt では PostgreSQL 10 がインストールされる 現時点(2019/05/18)では apt でインストールすると以下のように 10 が入ります。

Ubuntu 18.04 に MySQL 8 をインストールする

※ 2020年9月現在では、apt で MySQL 8 がインストールできます 結論 以下の手順に沿いましょう。

Squid で SSL Bump なプロキシサーバを構築する

結論 細かく書いている時間がないので、以下は手順だけとさせてください*1。 なお、SSL Bump は MITM(中間者攻撃)とほぼ同等なロジックのため、(不)特定多数のユーザが使う場合には注意が必要です。 前提 CentOS 7 です。 手順 CentOS 7 の場合は Squid …

Docker のコンテナに root で入る方法

結論 $ docker exec -it -u 0 CONATAINER_NAME /bin/bash つまり -u オプションに 0 を指定すれば OK です。ユーザID を 0 としてログインすることになります。ユーザID 0 は、root ユーザです(以下の例を参照)。 $ cat /etc/passwd root:x:0:0:root:/root…

Apache2 でどこにも DocumentRoot が見当たらないときは /var/www/html を見に行く(っぽい)

結論 つまり、いろいろと設定を変更しても /var/www/html 配下のファイルが表示され続けるときは、どこかの設定がおかしいということになります。 経緯 /etc/apache2/sites-available 配下に設定ファイルの foobar.conf を頑張って書いて、Apache2 を再起動…

Docker Compose で作られたデータボリュームには現在のディレクトリ名が接頭語として付与される

具体例 こんな感じで docker-compose.yml 内で volumes を定義したとします。カレントディレクトリは /path/to/fruits であるとします。 volumes: apple: orange: banana: そして $ docker-compose up してから $ docker volume list すると以下のようになり…

Powered by はてなブログ