- 投稿日:2020-01-04T23:35:09+09:00
各種 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
参考とした文献
https://hnakamur.github.io/blog/2015/12/16/how_to_debug_errors_in_rpm_build_using_mock/
https://hnakamur.github.io/blog/2015/12/18/add_third_party_to_build_on_mock_and_copr/
http://manpages.ubuntu.com/manpages/bionic/man1/mock.1.html
https://blog.packagecloud.io/eng/2015/05/11/building-rpm-packages-with-mock/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
- 投稿日:2020-01-04T22:33:32+09:00
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以上です。
- 投稿日:2020-01-04T19:14:18+09:00
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のインストール経験者であれば、なんとかなるでしょう。初心者でも、何回か試してみれば、インストールできます。
- 日本語の扱いは後回しにして、まずは、英語環境で、Xを起動できるように構築する。なぜかというと日本語フォントがデフォルトでインストールされないので、日本語で立ち上げようとしても、文字化けする。
- /boot, /home, / として、3つの独立した、パーテーションを前提としている。何に使うかにもよるが、日常のデスクトップ用途であれば、それぞれ 200MB、20GB、25GB程度で良いかと思う。
- ログイン時のディスプレイマネージャーは、lightdm が最近の流行のようですが、私の場合は、ロケール切り替えができる、lxdm が好み。英語表示環境、日本語表示環境がログイン時に選択できる。
- 日本語ロケールの生成は、/etc/locale.gen を編集し、ja_JP.UTF-8 UTF-8 の前についている # を削除したのち、コンソールから、#locale-gen とコマンドを打てばOK
- cinnamon, en_US で Xまで起動できるようにする。日本語環境は、X起動の後で可。cinnamon 以外でもOK、デスクトップ環境も複数インストールして切替可能。
- 日本語表示のため、noto-fonts-cjk をインストールする。 yay -S noto-fonts-cjk とか。
- 日本語IMは、fcitx-im, fcitx-configtool, fcitx-mozc の定番をインストールする。
- ディスプレイマネージャーでログインするので、 ~/.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
などなど
- 投稿日:2020-01-04T02:38:02+09:00
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
以上です。読んでくださいましてどうもありがとうございました。
- 投稿日:2020-01-04T00:17:41+09:00
sudo kill -9でプロセスを強制終了する
半沢直樹のスピンオフ「半沢直樹イヤー記念・エピソードゼロ 狙われた半沢直樹のパスワード」で不正プログラムを止めるために
sudo kill -9
が発動していました。
実際に上記のコマンドを打つと、Linux上でプロセスを強制終了できます。bash$ sudo kill -9 <プロセスID>実際にhttpdを題材にやってみましょう。
まずはps
コマンドでプロセスの状態を確認します。bashec2-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がいなくなっていることが分かります。bashec2-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企業を取り巻くストーリーですので、技術的にも面白い展開が見られるかも知れませんね。