初版作成 2016.11.4
最終更新 2024.04.01
> 既にインストールしてある Linux がある場合、 それらのファイルシステムを上書きしてよいか聞いてくる。 上書きを選択する > 言語は english を選ぶ 地域は Asia --- Japan > インストール時のユーザー名は admin を入れる。 ここで入れたユーザー ID は 1000 になる。 自分用 ID は後で作成する。 ubuntu 11.04 のとき、ここで自分用 ID を作成し、 後から uid を 1000 ---> xxxx に変更すると sudo できなくなった。 /etc/group を正しく設定しておくと回避できると思われるが・・・ > ネットワークの設定はインストール時に聞いてくる 固定 IP アドレス, ネットマスク, デフォルトルーター, DNS を設定する > 色々なサーバーソフトを入れるか否か聞いてくる。 Mail server, samba, sshd などを入れる。
$ sudo -s 元のユーザーの .bashrc を読み込む $ sudo -i root の .bashrc を読み込む
apt は apt-get と似ているが、後発のコマンドで apt-get の
欠点を解消しているらしい。
最初にすること
$ sudo -s
# apt update
インストール, アンインストール
# apt-cache search keyword
# apt install pkg-name
# apt remove pkg-name 設定ファイルは残る
# apt purge pkg-name 設定ファイルも削除
# apt upgrade 最新バージョンのインストール
やめたほうがよいかも
インストール済パッケージのリスト
$ dpkg --get-selections
$ dpkg -l
$ sudo -s # apt -y install ubuntu-desktop ブート直後から X が起動する。 admin でログインできなくなった。ログイン直後に エラーが発生してデスクトップにたどりつけない。 sshd が動作しているので、ネットワークからログインし $ sudo -s # rm .Xauthority # rm .xsession-errors で入れるようになった。
左上の渦巻マークのアイコンで teminal と入れると いくつかターミナルソフトが表示される。 無印の Terminal が使いやすいようだ。
System Settings(歯車マークのアイコン)---- User Accounts 新たにユーザーを加えると uid = 1001, gid = 1001 になる。 nfs で共有するために、手作業で uid, gid を変更する。 uid の変更 # vipw group id の作成 # emacs -nw /etc/group my-group:x:510: という行を追加 ディレクトリの設定変更 # cd /home # chown -R my-account my-account # chgrp -R my-group my-account
# apt install emacs # apt install ftpd # apt install tcsh # apt install telnetd # apt install mlterm
> ctrl と caps の入れ換え $ setxkbmap -option ctrl:swapcaps > esc と 全角半角 の入れ換え $ xmodmap ~/keyfile ~/keyfile の中身は ------------------- keycode 49 = Escape keycode 9 = Zenkaku_Hankaku ------------------- > 上記の設定の記述 .bashrc に書き込む。しかし、リモートからログインして 上記を実行すると Cannot open display "default display" xmpdmap: unable to open display '' というエラーが発生する。sudo -s するとその場所で止まる。 以下のように記述する。 if [ "x$REMOTEHOST" = "x" -a $USER = "my-account" ]; then echo "set keyboard" setxkbmap -option ctrl:swapcaps xmodmap /home/yabu/keyfile else echo "keyboard is not set." fi sudo -s のときと、リモートログインしたときは xsetxkbmap と xmodmap を実行しない。
# visudo my-account ALL=(ALL) NOPASSWD: ALL
(1) インストール # apt install nfs-common <-- client 用 # apt install nfs-kernel-server <-- server /etc/hosts を更新しておく (2) クライアントの設定 # mount -t nfs eclipse:/home/Pioneer/my-account /home/my-account/e /etc/rc.local に書く (3) サーバーの設定(未確認) /etc/exports を書く /home/my-account eclipse(rw,sync,no_subtree_check) /var/lib viper(rw,sync,no_subtree_check,no_root_squash) salamander:mysql が所有するファイルを viper:root が アクセス可能にするため no_root_squash を付ける。 (4) 設定を反映させる # /etc/init.d/nfs-kernel-server reload # exportfs 歯車マークをクリックすると System Settings
bash: export LANG=ja_JP.UTF-8 tcsh: setenv LANG ja_JP.UTF-8
> Language Support ---- Language Install/Remove Languages ---- Japanese ドラッグして「日本語」を一番上に持っていく Regional Formats 「日本語」を選ぶ。Apply System-Wide をクリックする > Text Entry Input sources to use: で + を押して Japanese(OADG 109A) を選ぶ。 矢印キーを押して Japanese を一番上に持っていく。 > キーボードの選択 画面右上の En をクリックして Ja を選ぶ
ibus-mozc をインストールしたが、最終的に ibus ではなく fcitx から mozc を使うことにした。 # apt -y install language-pack-ja-base # apt -y install language-pack-ja # apt -y install ibus-mozc $ ibus-setup 追加 ---- 日本語 ---- Mozc Mozc を選択 ---- 設定 再起動(不要かも) $ im-config -n fcitx ログアウト --- 再度ログイン 右上のキーボードのアイコン ---- 入力メソッド ---- Mozc 変換キーはデフォルトで「全角/半角」と「ctrl + space」 しかし、ctrl + space は emacs の範囲選択と重なって困る。 windows キー(super) + space に変更する。 設定 ---- 全体の設定 に入力メソッドの on/off のメニューがある
インストール時に postfix は既にインストールしてある > 設定ファイルの配置 /etc/postfix/main.cf を配置する。今回は、以前インストールした ubuntu マシンの ファイルを持ってきたが、新規に作成する場合は、 以下のようにする。 ひな形は /usr/share/postix/main.cf.dist 変更点は以下の 2 点でよいと思われる。 myhostname = relayhost = 192.168.xx.yy > 再起動 # /etc/init.d/postfix restart > チェック $ mail xxxx@nara-edu.ac.jp -s "test mail" < mes-file
# apt install libx11-dev libX11 ではない # apt install gfortran gfortran を入れると /usr/bin/f77 というコマンドが 使えるようになる。 xypp 実行時にエラーが発生してコアダンプする。 Raspberry Pi ではエラーは発生しない。 Pi: gcc 4.9.2-10 ubuntu: gcc 5.4.0 output.c における wprintf での可変長引数の扱いに問題がある。 修正した。 wprintf は 7 個の引数をスタックから降ろそうとするが、 呼び出し元でスタックに積む変数の個数は最小で 1 個である。 降ろすときに、不正な領域をアクセスすると思われる。 今まで、エラーが出なかったのが不思議。
1. -g を付けてコンパイルしておく。 -O は付けない ライブラリ # apt install libc6-dbg 2. gdb の使い方 最初から実行 % gdb (gdb) file ../../xypp (gdb) run nsgraph.X (gdb) bt コアがあるとき % gdb ../../xypp core (gdb) where
# apt install texlive # apt install texlive-math-extra # apt install texlive-fonts-extra # apt install texlive-plain-extra # apt install texlive-lang-japanese # apt install texlive-lang-cjk # apt install ptex-base # apt install xdvik-ja platex, xdvi, dvips, gs が使える。 platex が扱う漢字コードは UTF-8 EUC ではエラーがでる。 dvips, gs は問題なく使える。 xdvi (xdvik 22.84.16 j1.41-ptexlive (Xaw toolkit)) はデフォルトでは以下の不具合が生じる。 eps ファイルを表示すると、 以前に同じ場所に描画した eps ファイルが重なって表示される 回避方法は以下の通り。 $ xdvi --gsalpha .bashrc に以下のように記述しておくとよい。 alias xdvi='xdvi --gsalpha' <謝辞> この解決方法は新潟工科大学の竹野茂治先生に 教えていただきました。この場を借りて深くお礼を 申し上げます。
> System Settings から GUI でプリンタの設定を行う。 CUPS の設定が行われる。ここでの設定がどのように効いているのか不明。 ただし、この設定によって CUPS のデーモンが起動するようになった 可能性はある。 (1) プリンタとして LPD/LPR ホストまたはプリンターを選ぶ。 ホスト名 microline ( /etc/hosts で登録しておく ) キュー lp ドライバーを選択する画面に入るので Oki C5700(PS) を選択する。テスト印刷をしていないので、 この設定が効いているのか試してない。 (2) プリンタとして Oki DATA CORP MC562(192...) を選ぶ。 接続は DNS-SD 経由の..... を選ぶ。 テストページは正しく印刷された。 > コマンドラインから設定を行う 参考サイト $ lpinfo -v を実行すると、使用可能なプリンタのリストが表示される。 lpd プロトコルで使用予定の PS Printer は network socket://192.168.xx.yy と表示される。 # lpadmin -p lps2 -E -v socket://192.168.xx.yy で設定完了。lps2 はプリンタ名である。 # lpstat -l -p lps2 で確認。印刷は以下のコマンドで行う。 $ lpr -P lps2 ps-file ~/.bashrc に以下のように書いておく。 export PRINTER=lps2 2017.3.28 CUPS が起動していない。 コンソールからログインして 「設定」---「プリンター」---「設定」を見ると プリンターが停止している。 「ポリシー」---「有効にする」にチェックを入れると 再び使えるようになった。
export TERM=vt100
export CANNAHOST=eclipse
export EDITOR='emacs -nw'
export PRINTER=lps2
# LANGUAGE が設定されているときは LANG よりも LANGUAGE が優先する。
export LANG=C
export PATH="$PATH:~/bin:."
export CDPATH=".:~:/etc"
alias ls='ls --color=never --show-control-chars -F'
alias ne='emacs -nw'
alias rm='rm -i'
alias cp='cp -i'
alias sc='. ~/.bashrc'
function title(){
echo -n "]0;$1"
}
# 上で ^[ と ^G はコントロールキャラクター
http://redtiger.tank.jp/wiki/doku.php?id=ubuntu-server-10-04:apache2
上記のサイトに設定ファイルの配置について詳しい説明がある。
・実行用ファイル
本体 /usr/sbin/apache2
起動用スクリプト /usr/sbin/apache2ctl
起動 $ sudo /etc/init.d/apache2 [start|stop|restart]
・設定ファイル
設定ファイル /etc/apache2/apache2.conf 大元のファイル
apache2.conf から
mods-enabled/*.load
mods-enabled/*.conf
httpd.conf
ports.conf 待ち受けポート
conf.d/
sites-enabled/
が include される。
Include conf.d のようにディレクトリが指定されいる場合、
指定されたディレクトリ中の全てのファイルが読み込まれるようだ。
従って、バックアップファイル *~ は削除せねばならない。
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
有効 (無効) にしたいモジュールは
$ sudo a2enmod userdir
$ sudo a2dismod userdir
とコマンドを打つと
mods-available/*.(load|conf) ---> mods-enabled
のシンボリックリンクを張る(削除する)。
主要な設定や変更点は以下の通り
sites-enabled/000-default DocumentRoot
conf.d/security サーバーの応答(バックアップファイル *~ の消去必要!!)
DocumentRoot を apache2.conf や httpd.conf で設定しても
sites-enabled/000-default の設定が優先するようだ。
apache2.conf の最後に書いてもダメである。
ただし、sites-available/default で 80 番ポートでの設定を
しているが、ports.conf で待ち受けポートを 81 に設定すると、
apache2.conf や httpd.conf の設定が生きる。
ログ /var/log/apache2
DocumentRoot /var/www
--------------
・各ユーザーディレクトリを有効にする。
$ sudo a2enmod userdir
mods-enabled/userdir.conf を確認する。
・php を有効にする
$ sudo a2enmod php5
デフォルトの php5.conf は /var/www 以下では php を実行できるが
/home/*/public_html では実行を禁じているので、以下のようにコメントアウトする。
# php_admin_value engine Off
・perl の CGI
最初の 2 行で
Content-Type:text/html
空行
を出力しないと、サーバーのエラーが発生する。
elf の apache では発生しないのだが・・・
古いパッケージであるが、FreeBSD の時代から使っていた auctex 11.86 を インストールする。 1. auctex-11.86.tar.gz を展開する 2. % ./configure % make # make install でインストールが完了する。 C-c : でコメントアウト (トグル) が動作する。
(global-font-lock-mode 0) ; 出典 ult.riise.hiroshima-u.ac.jp/~nagato/?emacs ; 広島大学 長登康
mlterm を apt コマンドでインストールする。 最初、日本語を表示する方法が見つからなくて 苦労した。 何が効いているのか良くわからないが、 結局以下のようにして、日本語が k14 で表示 できている。 viper の ports のときに使った mlterm.2.9.2.tar.gz を 展開して configure して make, make install した。 tcsh から起動すると日本語の表示、k14 の使用ができないが、 bash から起動すると k14 を使って日本語を表示する。 ~/.mlterm/main は eclipse のものを、そのまま使う。
eclipse の emacs 22.1.4 と異なる点がある。
・fortran-mode で newline のときに indent してしまう
---> (setq electric-indent-mode nil)
・fortran mode で数字を入れると
Symbol's value as variable is void: last-command-char
というエラーが出る。
---> (define-obsolete-variable-alias 'last-command-char 'last-command-event "at least 19.34")
・.F ファイルをコンパイルしてコンパイルエラーが出ると、*.F という
ファイル名を入れる必要がある。
f77 の出力が変わったことが原因。
eclipse の f77 は GNU Fortran (GCC) 3.4.4 [FreeBSD]
salamander の f77 は GNU Fortran (....) 5.4.0
コマンドラインから実行すると、エラーの行が以下のようになる
<eclipse>
% f77 -fsecond-underscore -c -g -O .debug/isou3.f
isou3.F:33:
zimplicit none
1 2
Unrecognized statement name at (1) and invalid form for assignment or statement-function definition at (2)
<salamander>
% f77 -fsecond-underscore -c -g -O .debug/isou3.f
.debug/isou3.f:33:6: Error: Unclassifiable statement at (1)
emacs のコンパイルウィンドウでは以下のようになる
f77 -fsecond-underscore -c -g -O .debug/isou3.f
<command-line>:33:6: Error: Unclassifiable statement at (1)
Error occur in command 'f77 -fsecond-underscore -c -g -O .debug/isou3.f'. Stop.
f77 の出力が異なるのが原因のようなので、対処が難しい。
外からログインし、tcsh を起動し cd すると、固まる。 もう一度外からログインすると、ログインはできるが、 df, tcsh を実行すると、固まる。 コンソールに行き、リセットスイッチを押す。 起動し、/boot の残り容量が 0 になったというメッセージがでる。 http://bioinfo-dojo.net/2016/07/02/boot_100_ubuntu/ に対処法が書いてある。 (1) 残り容量の確認 $ df -h で /boot が残り容量 0 になっているのを確認する。 (2) 使用中のカーネルの確認 $ uname -r (3) インストールされているカーネルの確認 $ dpkg --get-selections | grep linux-image (4) 使用中でないカーネルを削除する $ sudo apt-get autoremove --purge linux-image-4.x.y 使っていない旧いカーネルを 1 つ名指しで削除すると、 付随する諸々のファイルも削除されるようだ。良くわからない。
最初に # apt update を実行した。これが悪かったかもしれない。 /boot が満杯になっているのが原因のようだ。 $ dpkg --get-selections | grep linux-image を実行すると、カーネルファイルがたくさんある。 2017.6.21 の記事に従って、 $ sudo apt-get autoremove --purge linux-image-4.4.0-78 を実行してもエラーが出てカーネルが消えない。 指示(apt-get -f install をパッケージ名なしで実行する)の通りに # apt-get -f install と実行すると sudo apt autoremove を実行せよと言ってくる。 実行してもエラーが出る。-f で実行せよと言ってくるので # apt -f autoremove を実行する。しかし、エラーが出る。 リブートしてみたが、状況は変わらない。 # apt-get -f purge linux-image-4.4.0-78 もダメ。 手動で remove する。 # rm *78* を実行し、5 個のファイルを削除する。あるていど 空き容量ができた。 # apt-get -f install と打つと、処理が進む。 しかし、最後に dpkg のエラーが発生して終了した。 再び boot が満杯になっている。 手動で削除する。 # rm *79* # rm *81* で 10 個のファイルを消す。その上で、 # apt-get -f purge linux-image-4.4.0-83 を実行すると正常終了する。手動で既に rm した バージョンを # apt-get -f purge linux-image-4.4.0-79 とすると、エラー無く終了した。 # apt-get autoremove を実行すると、不要と思われるバージョンのカーネルを お任せで削除するようだ。 今、4.4.0-92 をカーネルとして使っている。 89 91 92 97 を残して 93 96 を削除した。
console からログインすると、上記のように表示された。 df すると /boot は残り 8193 となっている。 $ uname -r で確認すると、カーネルは 4.4.0-104.generic と表示された。 # apt-get autoremove を実行すると、 108, 109, 92 が削除され、 /boot は残り 158648 となった。そしてカーネルは 4.4.0-116-generic に設定された。
rc.local に mount コマンドを書いている。 その mount コマンド実行時にサーバーが落ちているか サーバーと通信できないと、起動途中で止まる。 コンソールで ctrl-c を実行しても効かない。 外から telnet もできない。 rc.local における mount コマンドは & を付ける。
/etc/init.d /etc/rc?.d などの下に自動起動のスクリプトが入っている。 自動起動するデーモンを設定するために、sysv-rc-conf コマンドを インストールする。 # apt install sysv-rc-conf 起動する # sysv-rc-conf CUI だが GUI 風のインターフェースで各デーモンを on/off できる。
ファイルの場所
http://archive.linuxfromscratch.org/blfs-museum/5.0/BLFS-5.0/server/qmail.html
に書いてある。ダウンロードしたファイルの
拡張子は tar.gz だが、実際は tar なので、
$ tar xf qmail-1.03.tar.gz
で展開する。パッチは以下にある。
http://www.ksknet.net/qmail/qmaildatelocalt.html
インストール方法は以下に書いてある。
http://library.denet.ad.jp/2014/09/qmail-1.html
---------------
(1) パッチをあてる
$ tar zxf qmail-1.03.tar.gz
$ cd qmail-1.03
$ patch < qmail-date-localtime.patch
(2) error.h の修正
extern int errno; -----> #include <errno.h>
(3) コンパイル
$ make
(4) インストール
# make setup check
# ./config-fast salamander.nara-edu.ac.jp
(5) 設定
/var/qmail/control 以下を設定する。
設定の詳細は次の項目
$ df -h すると、/boot が残り 51M になっている。 # uname -r すると、 4.4.0-121-generic と表示される。 # apt-get autoremove すると、古いバージョンが削除され残りが 207M となった。 ときどき、autoremove を行う必要があるようだ。
<参考> http://sakanade.asablo.jp/blog/2012/11/01/6620467 ubuntu はデフォルトで dovecot という pop サーバーが 動作している。 以下の設定が必要である(Maildir 形式を使用)。 (1) /etc/dovecot/conf.d/10-mail.conf #mail_location = mbox:~/mail:INBOX=/var/mail/%u コメントアウト mail_location = maildir:~/Maildir コメントを外す (2) /etc/dovecot/conf.d/10-auth.conf disable_plaintext_auth = no > dovecot をリスタートさせる。 # /etc/init.d/dovecot restart
日経 linux 2018.9 特別付録 p.47 に crontab -e は お薦めできないと書いてある。 理由はファイルの置き場所が /var/spool/cron/crontabs/user-name なので、バックアップするのを忘れるからである。 上記のファイルは root しかアクセス権がないので、ユーザーの権限では バックアップできない。 1人で使う場合は /etc/cron.d/ 以下にファイルを置け、 と書いてある。 /etc/cron.d の下にファイルを置くと、cron が実行して くれるようだ。 /etc/cron.d/user-name というファイルを置き、そのファイルの内容は 以下のようにする。 --------------------------------------------- #!/bin/sh SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=user-name HOME=/home/yabu 0 3 * * * user-name command ---------------------------------------------- crontab -e で設定するファイルとの違いは、 コマンドの手前に実行するユーザー名を書くことである。 しかし、この方法も難がある。 http://blog.pinkumohikan.com/entry/etc-cron.d-has-restriction-for-permission-and-owner によると、ファイルの所有者が root でなくてはならず、 かつ、他人に書き込み権限を与えてはならない。 ファイルの所有者がユーザーのときは /var/log/syslogd を見ると、 WRONG FILE OWNER というエラーが出て、実行されない。 所有者が root でも他者に対して書き込み許可が出ていると、 INSECURE MODE というエラーが出て、書き込みできない。 編集するには sudo が必要なので、crontab -e より面倒である。 しかし、一般ユーザーに対してリード許可は出せるので、 一般ユーザーの権限でバックアップできる。 バックアップのメリットの方が大きいと判断して、 crontab -e はやめた。
コンソールからログインすると、/boot が満杯であると いう表示がでている。 # apt-get autoremove ではエラーがでる。 # apt-get -f autoremove と打つと処理がすすむ。しかし、非常に長い時間がかかった。 9/30 にもう一度 # apt autoremove を実行すると、さらにいくつかのカーネルを消す。 現在、 62 63 89 91 121 185 190 が残っている。uname -r の結果は 185 である。 /boot は 容量 482922 Used 278023 Available 179965
samba がアクセスできなくなる。 # /etc/init.d/smbd (start|stop|restart|reload) で、restart, stop --> start をしてもダメ $ df すると固まる。 リブートしたら samba にアクセスできるようになった。 何となく df してみると、/boot が残り 0 になっている。 # apt autoremove で不要なカーネルを削除する。uname -r の結果は 4.4.0-206-generic である。/boot を見ると、 62 63 89 91 121 206 209 210 が残っている。 # apt purge linux-image-4.4.0-62 を実行しても消えない。62, 63, 89 を手動で削除する。