20200104のLinuxに関する記事は5件です。

各種 Linux の chroot による開発環境の分離まとめ

chroot による開発環境の分離まとめ

OpenCV によるクロスプラットフォーム開発において Linux の開発環境を chroot で本体から切り分けたかったので。

※ とはいえ一番簡単なのは Docker だと思う。

※ FreeBSD なら jail。

※ macOS には chroot 有り。brew の jailkit や brew 自身と併用で色々出来そう。

※ Windows なら UNIX Like な開発環境は Cygwin にせよ MSYS2 にせよ WSL1 や WSL2 にせよある程度分離されている気がしないでもないので割愛。

chroot について

https://wiki.archlinux.jp/index.php/Chroot

Debian/Ubuntu

pbuilder を使用する
https://www.debian.org/doc/manuals/maint-guide/build.ja.html
https://wiki.ubuntu.com/PbuilderHowto

参考とした文献

Fedora/RHEL/CentOS

mock を使用する
https://github.com/rpm-software-management/mock/wiki

参考とした文献

Slackware/Zenwalk/SalixOS

インストールCD から対象ディレクトリに展開・導入する
https://docs.slackware.com/howtos:general_admin:setting_up_a_slackware_chroot

あとは通常手順で chroot

Arch

pacstrap コマンドを用いる
https://wiki.archlinux.jp/index.php/インストールガイド#ベースシステムのインストール

pacstrap /var/tmp/chroot base base-devel

あとは通常手順で chroot

Manjaro

extra/manjaro-tools-base に含まれる basestrap コマンドを用いる
https://wiki.manjaro.org/index.php?title=Manjaro-tools

basestrap /var/tmp/chroot base base-devel

あとは通常手順で chroot

Gentoo

stage3 イメージを対象ディレクトリに展開する
https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Stage/ja

あとは通常手順で chroot

Sabayon

Sabayon_Linux_<年>.<月>_amd64_tarball.tar.gz を対象ディレクトリに展開する

mkdir /var/tmp/chroot
cd /var/tmp/chroot
curl -LO http://<ミラーのSabayonのディレクトリ>/stable/Sabayon_Linux_<年>.<月>_amd64_tarball.tar.gz
#以下は理研のミラーの場合
#curl -LO http://ftp.riken.jp/Linux/sabayon/stable/Sabayon_Linux_19.03_amd64_tarball.tar.gz
tar xpvf Sabayon_Linux_<年>.<月>_amd64_tarball.tar.gz --xattrs-include='*.*' --numeric-owner # アーカイブの展開

あとは通常手順で chroot

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

PHP7.4をCentOS8にインストール

はじめに

お正月を使って自宅色々兼用サーバを役割ごとに仮想化させました。
仮想化ベースはCentOS8/KVMで、本稼働VM部分とは別に検証し放題のテストVM環境も作ったので今後色々遊べそうです。
サーバ構築部分はいつか別途書こうと思います。
ちなみに現状VM4インスタンス同時起動でも、ほとんどの時間がアイドル状態なので35w程度の消費電力です。

んで、PHP7.4.1が安定版になってるのでインストール用メモ。
例のごとくRemi、epelリポジトリからダウンロードします。

インストール

リポジトリのインストール

# epel
$ sudo dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
# -略-
# remi
$ sudo dnf -y install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
# -略-

PHP7.4.1のインストール

インストール可能なphpモジュールを確認。

$ sudo dnf module list php
# -略-

リストで確認できたremi-7.4を選択

$ sudo dnf module enable php:remi-7.4

=========
パッケージ    アーキテクチャー     バージョン     リポジトリ      サイズ
=========
Enabling module streams:
 php                                     remi-7.4

必要なパッケージをインストール

$ sudo dnf install php php-cli php-common
# -略-

インストール確認

$ php -v

PHP 7.4.1 (cli) (built: Dec 17 2019 16:35:58) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.1, Copyright (c), by Zend Technologies

以上です。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Arch Linux のインストールメモ

Arch Linux を再インストールしたので、そのメモ(2020年1月4日)

2018年の夏から使用を継続しているArch Linux が、12月ころから、更新ができなくなっていた。検索すると、サポートが終了したパッケージが何やら邪魔をしていて、更新エラーが起こっているらしい。これかと打ち込んだ削除コマンドが致命的で、Xが起動しなくなったので、データファイルのバックアップを取った後に、ゼロから再インストールした。

どのやり方を使うか --> archfi

以前のメモを読み返してみたが、同じ方法を繰り返すのは、まあ楽しくない。ということで最近は、YouTube にも、その類のチュートリアルはたくさんあるので、探していたら、インストール用のスクリプトを紹介している動画があったので、参考にさせていただいた。

https://www.youtube.com/watch?v=GUtpHFI-vjg

この動画で紹介されている方法を試してみたら、うまくインストールできた。 下記の通り
wget で archfi スクリプトをダウンロードし、
その archfi スクリプトを実行する。

# wget archfi.sf.net/archfi
# sh archfi

スクリプトを実行する環境として、

  • 同じPCの違うハードディスクにインストールされているLinux のコマンドラインからarchfiスクリプトを実行して、他のハードディスクあるいは、パーテーションに Arch Linux をインストールする。

  • USBスティックのようなインストールメディアから、linux を起動し、そのコマンドコンソールで、archfi をダウンロードし、実行する。

いずれの方法も、ネットワーク環境は必須で、archfiスクリプトを実行すると、必要なファイルをネットからダウンロードしてインストールする。スクリプトは対話式なので、メニューの上から順番に実行すれば良い。Linuxのインストール経験者であれば、なんとかなるでしょう。初心者でも、何回か試してみれば、インストールできます。

  1. 日本語の扱いは後回しにして、まずは、英語環境で、Xを起動できるように構築する。なぜかというと日本語フォントがデフォルトでインストールされないので、日本語で立ち上げようとしても、文字化けする。
  2. /boot, /home, / として、3つの独立した、パーテーションを前提としている。何に使うかにもよるが、日常のデスクトップ用途であれば、それぞれ 200MB、20GB、25GB程度で良いかと思う。
  3. ログイン時のディスプレイマネージャーは、lightdm が最近の流行のようですが、私の場合は、ロケール切り替えができる、lxdm が好み。英語表示環境、日本語表示環境がログイン時に選択できる。
  4. 日本語ロケールの生成は、/etc/locale.gen を編集し、ja_JP.UTF-8 UTF-8 の前についている # を削除したのち、コンソールから、#locale-gen とコマンドを打てばOK
  5. cinnamon, en_US で Xまで起動できるようにする。日本語環境は、X起動の後で可。cinnamon 以外でもOK、デスクトップ環境も複数インストールして切替可能。
  6. 日本語表示のため、noto-fonts-cjk をインストールする。 yay -S noto-fonts-cjk とか。
  7. 日本語IMは、fcitx-im, fcitx-configtool, fcitx-mozc の定番をインストールする。
  8. ディスプレイマネージャーでログインするので、 ~/.xprofile に以下を記述する。
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"

Fcitx設定のキーボード設定で、Mozc を追加すると、日本語入力ができるようになる。
後は、好みのアプリケーションをインストールしていけばよろしい。Xが立ち上がっているので、コマンドライン以外、GUIでもインストール可能である。

  • NAS接続(Windows共有ディレクトリ): gvfs-smb
  • 音楽再生:audacious
  • 壁紙アプリ:variety

などなど

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

lm-sensorsのインストール(Live USB,Ubuntu)

ubuntuのlm-sensorsパッケージが入手できるリポジトリはuniversなんですが、Live USBからbootしたてだと一覧に入ってないです。
そこで以下の手順でリポジトリ追加からlm-sensors起動まで進められました。

リポジトリの追加
# apt-add-repository universe

lm-sensorsのインストール
# apt install lm-sensors

lm-sensors起動
# sensors



以上です。読んでくださいましてどうもありがとうございました。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

sudo kill -9でプロセスを強制終了する

半沢直樹のスピンオフ「半沢直樹イヤー記念・エピソードゼロ 狙われた半沢直樹のパスワード」で不正プログラムを止めるためにsudo kill -9が発動していました。
実際に上記のコマンドを打つと、Linux上でプロセスを強制終了できます。

bash
$ sudo kill -9 <プロセスID>

実際にhttpdを題材にやってみましょう。
まずはpsコマンドでプロセスの状態を確認します。

bash
ec2-user:~/environment $ ps aux | grep httpd
root      4740  0.0  2.1 418668 21736 ?        Ss   15:11   0:00 /usr/sbin/httpd
apache    4749  0.0  1.4 459780 14332 ?        Sl   15:11   0:00 /usr/sbin/httpd
apache    4750  0.0  1.4 459780 14332 ?        Sl   15:11   0:00 /usr/sbin/httpd
apache    4810  0.0  1.4 459780 14332 ?        Sl   15:11   0:00 /usr/sbin/httpd
apache    4831  0.0  1.4 656452 14332 ?        Sl   15:11   0:00 /usr/sbin/httpd
apache    4852  0.0  1.4 459780 14332 ?        Sl   15:11   0:00 /usr/sbin/httpd

次にkillコマンドでプロセスIDを指定して強制的に停止します。
今回は上記のうち、プロセスIDが4749のものを止めてみます。
その後psコマンドを打って確認すると、4749がいなくなっていることが分かります。

bash
ec2-user:~/environment $ sudo kill -9 4749
ec2-user:~/environment $ ps aux | grep httpd
root      4740  0.0  2.1 418668 21736 ?        Ss   15:11   0:00 /usr/sbin/httpd
apache    4750  0.0  1.4 459780 14332 ?        Sl   15:11   0:00 /usr/sbin/httpd
apache    4810  0.0  1.4 459780 14332 ?        Sl   15:11   0:00 /usr/sbin/httpd
apache    4831  0.0  1.4 656452 14332 ?        Sl   15:11   0:00 /usr/sbin/httpd
apache    4852  0.0  1.4 459780 14332 ?        Sl   15:11   0:00 /usr/sbin/httpd
apache    4952  0.0  1.4 459780 14332 ?        Sl   15:13   0:00 /usr/sbin/httpd

以上のように sudo kill -9 ではLinuxのプロセスを強制停止できます。

おまけ

2020年4月から始まる「半沢直樹」第2期の原作になるであろう『ロスジェネの逆襲』は、新興IT企業を取り巻くストーリーですので、技術的にも面白い展開が見られるかも知れませんね。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む