カメノドットコム
Debian大好きでメインで節操ない感じ。
GMOもわりと好き。
RSS feedly

開発環境をインストール

当方では、サーバデーモンの大半をソースからコンパイルしてインストールしています。
そのために必要な開発環境と、エディタ、パッケージ検索の使いやすさを向上させます。

---- [PR] ----
現在契約中 : GMOクラウドのVPS : お名前.com
今後契約するかも : お名前.com VPS
--------------

エディタを使いやすくする

デフォルトの vi は少々使いにくいのが難点です。
vim をインストールすると vi が一気に使いやすくなります。

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install vim
vi コマンドで vim が使えるようになりました。
シンタックスハイライトと行番号表示をさせるようにします。
$ sudo vi /etc/vim/vimrc
"コメントを外してシンタックスハイライト有効
"syntax on
syntax on
"追記する。行番号表示
set number

これで随分見やすくなったと思います。キーバインドは頑張って覚えて。

パッケージ検索とパッケージ削除を向上させる

apt-cache コマンドも使えますが、パッケージ管理としては aptitude のほうが強力です。
インストールしたいパッケージを探すときなどは aptitude search がとても見やすいです。
また、パッケージ削除にも deborphan というコマンドを併用すると、apt-get --purge remove では削除しきれなかったものも削除できるようになります。
これらのコマンド使用は個人的好みによるものなので、インストールするかどうかは任意に決めてください。

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install aptitude deborphan

apt-cacheaptitude の検索能力の違いは以下の感じ。

$ sudo apt-cache search build-essential | more
build-essential - Informational list of build-essential packages
crossbuild-essential-arm64 - Informational list of cross-build-essential packages
crossbuild-essential-armel - Informational list of cross-build-essential packages
crossbuild-essential-armhf - Informational list of cross-build-essential packages
crossbuild-essential-mipsel - Informational list of cross-build-essential packages
crossbuild-essential-powerpc - Informational list of cross-build-essential packages
crossbuild-essential-ppc64el - Informational list of cross-build-essential packages
$ sudo aptitude search build-essential | more
p  build-essential - Informational list of build-essential packages
p  crossbuild-essential-arm64 - Informational list of cross-build-essential packages
p  crossbuild-essential-armel - Informational list of cross-build-essential packages
p  crossbuild-essential-armhf - Informational list of cross-build-essential packages
p  crossbuild-essential-mipsel - Informational list of cross-build-essential packages
p  crossbuild-essential-powerpc - Informational list of cross-build-essential packages
p  crossbuild-essential-ppc64el - Informational list of cross-build-essential packages

違いがわかりますでしょうか。
aptitude search ではインストールされているかどうか、インストールされたが削除された、ホールドされている、壊れている、などもわかるようになっています。
先頭に「p」とありますが、このアルファベットの変化で状態がわかります。「p」は未インストール。「i」はインストール済み。
パッケージの状態がひと目でわかるのって、地味にありがたいです。

大掃除コマンドの deborphan も強力です。でも使うかどうかは任意。
システムアップグレードで apt-get autoremove を何度も打ちましたが、きっとまだなにか残ってるはず。
使用例をご覧ください。

$ sudo apt-get --purge remove `deborphan`
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  libboost-iostreams1.42.0* libdb4.8* libprocps3* libreadline6* libssl0.9.8*
  libudev0* libxapian22* linux-image-2.6-amd64*
0 upgraded, 0 newly installed, 8 to remove and 0 not upgraded.
After this operation, 7,613 kB disk space will be freed.
Do you want to continue? [Y/n] Y
$ sudo apt-get --purge remove `deborphan`
Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

残ってましたね、いらないパッケージが。
それでは削除しきれなかったファイルなども削除してみましょう。

$ sudo dpkg -P `deborphan --find-config`
(Reading database ... 36895 files and directories currently installed.)
Purging configuration files for libxtables10 (1.4.21-2+b1) ...
Purging configuration files for libprocps0:amd64 (1:3.3.3-3) ...
Purging configuration files for linux-image-2.6.32-5-xen-amd64 (2.6.32-48squeeze6) ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 2.6.32-5-xen-amd64 /boot/vmlinuz-2.6.32-5-xen-amd64
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 2.6.32-5-xen-amd64 /boot/vmlinuz-2.6.32-5-xen-amd64
Purging configuration files for linux-image-2.6.32-5-amd64 (2.6.32-48squeeze6) ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 2.6.32-5-amd64 /boot/vmlinuz-2.6.32-5-amd64
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 2.6.32-5-amd64 /boot/vmlinuz-2.6.32-5-amd64
Purging configuration files for libept1.4.12:amd64 (1.0.12.1) ...
Purging configuration files for liblognorm1:amd64 (1.0.1-3) ...
Purging configuration files for perl-modules (5.20.2-3+deb8u9) ...
Purging configuration files for libpsl0:amd64 (0.5.1-1) ...
Purging configuration files for libboost-iostreams1.55.0:amd64 (1.55.0+dfsg-3) ...
Purging configuration files for libsnmp15 (5.4.3~dfsg-2.8+deb7u2) ...
Purging configuration files for libirs-export91 (1:9.9.5.dfsg-9+deb8u15) ...
Purging configuration files for libpng12-0:amd64 (1.2.50-2+deb8u3) ...
Purging configuration files for libept1 (1.0.4) ...
Purging configuration files for libdb5.1:amd64 (5.1.29-5+deb7u1) ...
Purging configuration files for libapt-inst1.5:amd64 (1.0.9.8.4) ...
Purging configuration files for libgnutls-deb0-28:amd64 (3.3.8-6+deb8u7) ...
Purging configuration files for libcwidget3:amd64 (0.5.17-2) ...
Purging configuration files for acl (2.2.52-3+b1) ...
Purging configuration files for libgnutls26:amd64 (2.12.20-8+deb7u5) ...
Purging configuration files for libboost-iostreams1.49.0 (1.49.0-3.2) ...
$ sudo dpkg -P `deborphan --find-config`
(Reading database ... 36893 files and directories currently installed.)
Purging configuration files for libtasn1-3:amd64 (2.13-2+deb7u5) ...
Purging configuration files for libhogweed2:amd64 (2.7.1-5+deb8u2) ...
Purging configuration files for libssl1.0.0:amd64 (1.0.1t-1+deb8u8) ...
Purging configuration files for libisccfg-export90 (1:9.9.5.dfsg-9+deb8u15) ...
Purging configuration files for libsigc++-2.0-0c2a:amd64 (2.4.0-1) ...
Purging configuration files for libgcrypt11:amd64 (1.5.0-5+deb7u6) ...
Purging configuration files for libdns-export100 (1:9.9.5.dfsg-9+deb8u15) ...
Purging configuration files for libapt-pkg4.12:amd64 (1.0.9.8.4) ...
Purging configuration files for libjson-c2:amd64 (0.11-4) ...
Purging configuration files for libicu52:amd64 (52.1-8+deb8u7) ...
$ sudo dpkg -P `deborphan --find-config`
(Reading database ... 36893 files and directories currently installed.)
Purging configuration files for libisc-export95 (1:9.9.5.dfsg-9+deb8u15) ...
Purging configuration files for libnettle4:amd64 (2.7.1-5+deb8u2) ...
$ sudo dpkg -P `deborphan --find-config`
dpkg: error: --purge needs at least one package name argument

Type dpkg --help for help about installing and deinstalling packages [*];
Use 'apt' or 'aptitude' for user-friendly package management;
Type dpkg -Dhelp for a list of dpkg debug flag values;
Type dpkg --force-help for a list of forcing options;
Type dpkg-deb --help for help about manipulating *.deb files;

Options marked [*] produce a lot of output - pipe it through 'less' or 'more' !

sudo dpkg -P `deborphan --find-config` 連打で不要なパッケージ設定ファイルが根こそぎなくなりました。
これが気持ちよくてやめられないんですが、使うかどうかはあくまでもお好み次第です。

開発ツールをインストールする

パッケージしか使わないんだい! と頑張っていても、いつか何かをコンパイルしなければならないのが Linux の宿命。
最初に突っ込んでおきましょう。

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install build-essential

通常のコンパイルに必要なものは、これでひと通り揃います。割と大量にインストールされます。
他に必要になったら、その都度、パッケージをインストールするということで。

OSの名前などを調べるコマンド

パッケージをインストールしなくても unamecat を使うことで調べることが出来ます。

$ uname
Linux
$ uname -r
4.x.x-x-amd64
$ uname -a
Linux subxxxxx 4.x.x-x-amd64 #1 SMP Debian 4.x.x-x+debxxx (2018-xx-xx) x86_64 GNU/Linux

uname は主にカーネルバージョンを調べるのに使用します。ディストリビューションはわかりません。
Debian系では cat で詳細を簡単に知ることが出来ます。

$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
$ cat /etc/debian_version
9.4

ファイル名を完全に覚えなくても、TABキー補完で結構簡単に出てきます。
ディストリビューションを調べる専用コマンドも、これらのファイルを参照しているだけなので cat で充分と言えるでしょう。

本格的に運用する準備が整いました。
セキュリティ関連をキッチリとまとめていきましょう。

Sponsored Link