iostatでdiscard数・サイズも表示されるようになる。
2021-09-24
Redhat Enterprise Linux 9で何が新しくなるのか
Redhat Enterprise Linuxのアルファ版は、今の所Fedora 34がベースとなっているらしい。
Fedora 34を使用していてどんな違いがあるのか、メモを残しておく。
この記事は未完成で、これから加筆してゆく予定。
Kernel version: 4.18.0 -> 5.13.16
qt6が加わる。
すべてのオーディオがPipewireを通るようになる。 [記事] 使用する上で何が変わるのか良くわからないが、音響を扱うなら知っておいて損はないだろう。
2020-04-04
RHEL7にFedora 30のchroot環境をつくる
- まずディレクトリをつくる
sudo mkdir -p /opt/chroot/fedora30/var/lib/rpm sudo rpm --root /opt/chroot/fedora30/var/lib/rpm --initdb
- パッケージをインストールする
wget ftp://ftp.jaist.ac.jp/pub/Linux/Fedora/releases/30/Everything/x86_64/os/Packages/f/fedora-release-30-1.noarch.rpm wget ftp://ftp.jaist.ac.jp/pub/Linux/Fedora/releases/30/Everything/x86_64/os/Packages/f/fedora-release-common-30-1.noarch.rpm wget ftp://ftp.jaist.ac.jp/pub/Linux/Fedora/releases/30/Everything/x86_64/os/Packages/f/fedora-repos-30-1.noarch.rpm wget ftp://ftp.jaist.ac.jp/pub/Linux/Fedora/releases/30/Everything/x86_64/os/Packages/f/fedora-gpg-keys-30-1.noarch.rpm sudo rpm --root /opt/chroot/fedora30 --nodeps -ivh fedora-release-30-1.noarch.rpm fedora-release-common-30-1.noarch.rpm fedora-repos-30-1.noarch.rpm fedora-gpg-keys-30-1.noarch.rpm
- 必要となる設定ファイルをつくる
sudo mkdir -p /opt/chroot/fedora30/{dev,etc} sudo cp -a /dev/{null,stderr,stdout,stdin,zero,random,urandom} /opt/chroot/fedora30/dev/ sudo cp /etc/{resolv.conf,localtime} /opt/chroot/fedora30/etc/ - yumでbashとdnfをインストールする
sudo yum --nogpgcheck --installroot=/opt/chroot/fedora30/ install bash dnf
- chrootして、他のパッケージをインストールする
sudo chroot /opt/chroot/fedora30/ dnf install packages...
2018-10-28
PKG_CONFIG_PATHを使用したビルド
複数のバージョンのライブラリをインストールしたいなどの場合,
バージョンごとにインストール先のディレクトリを分けることがある.
その場合に, そのライブラリをリンクして別のソフトをビルドする方法をメモしておく.
ライブラリ (この例ではx264) のビルド・インストールをする.
以下の例では,
/usr/local/x264/2018092の下にインストールする設定でビルド・インストールする.
$ mkdir b && cd b $ ../configure --prefix=/usr/local/x264/20180923 $ make $ sudo make install上記のライブラリをリンクするソフト (この例ではffmpeg) のビルド・インストールをする.
$ mkdir b && cd b $ PKG_CONFIG_PATH=/usr/local/x264/20180923/lib/pkgconfig: ../configure --enable-libx264 --prefix=/usr/local/ffmpeg/4.0.git $ make $ sudo make install例で使用したffmpegでは
--extra-cflagsと--extra-ldflagsというオプションでx264のパスを設定することもできるが,
pkg-configを使用したほうが, よりライブラリ開発者の意図した設定でビルドすることができる.
あとは, 以下のようなラッパーを用意しておく.
#! /bin/bash export LD_LIBRARY_PATH=/usr/local/ffmpeg/4.0.git/lib:/usr/local/x264/20180923/lib: exec /usr/local/ffmpeg/4.0.git/bin/"$(basename "$0")" "$@"
2018-10-21
EL7にてユーザーのpublic_htmlを公開する手順
Scientific Linux 7 (CentOS 7と同様にRedhat Enterprise Linux 7のクローン, 以下EL7) において,
ユーザーのpublic_html下にあるコンテンツをApacheで公開するときの手順をまとめる.
Apacheのインストール
$ sudo yum install httpd
Apache上の設定
$ sudoedit /etc/httpd/conf.d/userdir.conf以下のように
disable の部分をコメントアウトし, 代わりに public_html の箇所を有効にする.
<IfModule mod_userdir.c>
# UserDir disabled
UserDir public_html
</IfModule>
SELinuxの設定
$ restorecon -R ~/public_html $ sudo setsebool -P httpd_enable_homedirs 1EL7ではデフォルトで
httpd_enable_homedirsが無効に設定されているので, これを有効にする必要がある.
Wirewalldの設定
$ sudo firewall-cmd --add-service=httpこれでアクセスできることを確認したのち, 以下のコマンドでパーマネントな設定にする.
$ sudo firewall-cmd --permanent --add-service=http
2018-10-06
自作PC組み立て
概要
1年位前に, OBS-Studioをつかう目的で, 古いPCの部品を入れ替えて, 新しいPCを組み立てた. 今でも問題なく動いているので, そのときに購入した部品を紹介する. なお, 自分用ではない. 使用頻度は, 週に半日くらい.
PCIおよびPCIEのカードでカメラからの映像をキャプチャし配信することが目的. 映像は複数あって, CPU上でスイッチする. 1K程度の映像を処理する. OSには, 安定していると期待してScientific Linux 7を選んだ.
使用部品
以下の部品を新たに購入した.CPU: Intel Core i7-7700
Memory: Team TED48G2400C16BK
Mother board: Asus H270-Pro
PCI, PCIEのボードをいくつか載せたかったので, これにした.
Display port to VGA変換アダプタ
自分でつかうならHDMIかDisplay Portのモニタを選ぶのだが...
予算の都合でモニタは古いアナログのまま.
この種の変換アダプタは故障が心配なので, レビューを注意深く確認した. この製品は未だ故障していない.
Blackmagic Intensity Pro 4K
業務用の製品も出している会社なので, Linuxのサポートも謳っており, OBS-Studioでサポートしていることを確認して, 購入した.
Scientific Linux 7へのインストールはとても苦労した. Kernelのアップデートでも, カーネルモジュールのための色々な作業が必要だ.
2015-01-29
RHEL7: pdftops が両面印刷できないPSを生成する
RHEL6 では,
$ lpr a.pdfや
$ pdftops a.pdf -| lprによってPDFを印刷できた. しかし, RHEL7でこの方法を使うと, 印刷はできるものの, 両面に設定しても, 片面で印刷されてしまう. どうやら, 出力されるPSの上の方に,
pdfSetupPaper というマクロがあるのだが, この実装が悪いらしい.
1ページごとにページサイズを設定するのだが, ページサイズが設定されるとプリンタが両面印刷せずに排紙してしまうようだ.
もうすぐパッチが適用されると思うのだが, 待ちきれなかったので, 自分でビルドしてしまった.
対処1: sedでページを設定する pdfSetupPaper を除去する.
以下のコマンドを pdftops と lpr の間にいれる.
sed -e "s/ pdfSetupPaper/ pop pop/"Popplerのバグジラで議論されているが, そのパッチを適用する. 他にもいろいろなパッチが出ていたのだが, pdfSetupPaper のパッチだけにした.
$ yumdownloader --source poppler $ rpm -ivh poppler-0.22.5-6.el7.src.rpm $ cd ~/rpmbuild/SOURCES/ $ wget -O poppler-pdfSetupPaper.patch https://bugs.freedesktop.org/attachment.cgi?id=91005 $ cd ../SPECS/ $ vim poppler.spec $ rpmbuild -ba poppler.spec $ cd .. $ sudo rpm -Uvh RPM/x86_64/poppler*.rpm以下にspecファイルの更箇所を示す.
--- poppler-orig.spec 2014-02-15 01:11:43.000000000 +0900
+++ poppler.spec 2015-01-31 00:08:23.569595075 +0900
@@ -1,7 +1,7 @@
Summary: PDF rendering library
Name: poppler
Version: 0.22.5
-Release: 6%{?dist}
+Release: 6%{?dist}a
License: (GPLv2 or GPLv3) and GPLv2+ and LGPLv2+ and MIT
Group: Development/Libraries
URL: http://poppler.freedesktop.org/
@@ -16,6 +16,9 @@
# https://bugzilla.redhat.com/show_bug.cgi?id=1053616
Patch2: poppler-0.22.5-rotated-words-selection.patch
+# https://bugs.freedesktop.org/attachment.cgi?id=91005
+Patch3: poppler-pdfSetupPaper.patch
+
Requires: poppler-data >= 0.4.0
BuildRequires: automake libtool
BuildRequires: gettext-devel
@@ -134,6 +137,7 @@
%patch0 -p1 -b .CVE-2013-4473
%patch1 -p1 -b .CVE-2013-4474
%patch2 -p1 -b .rotated-word-selection
+%patch3 -p1 -b .duplex
iconv -f iso-8859-1 -t utf-8 < "utils/pdftohtml.1" > "utils/pdftohtml.1.utf8"
mv "utils/pdftohtml.1.utf8" "utils/pdftohtml.1"
@@ -256,3 +260,6 @@
%changelog
+* Thu Jan 1 2015 My Name - 0.22.5-6a
+- pdfSetupPaper macro modified
+
2015-01-28
GHOST 脆弱性のセキュリティアップデート後に
今回の脆弱性は,
gethostbyname に見つかって, 任意のコードが実行される可能性があるというもの.
glibcのアップデートが必要なのだけれど, アップデートの後, この共有オブジェクトをリンクしているサービスすべてを再起動しないといけない.
一番安全なのは, OSを再起動することなのだけれど, そう簡単にOSすべてを再起動するわけにはいかない場合もあるだろう.
こういうとき, 古い (削除済みの) 共有オブジェクトをリンクしているプロセスを探すことができると便利である.
以前にも記事を書いたが, 再掲する.
RHEL 5, 6, 7 では, 以下のようなコマンドで, 探すことができる.
sudo sh -c 'grep "\.so.*deleted" /proc/*/maps' | cut -f3 -d/ | xargs ps
/proc/*/mapsにマッピングの状況 (共有オブジェクトやその他いろいろ) が出てくるので,
この中で, deleted とラベルがついたものを探す.
ただ, 拡張子「.so」がついたものだけを探さないと, 誤検出してしまう.
2015-01-14
メールサーバからの応答: XX is not yet authorized to deliver mail
あるメーリングリストに投稿しようとしたら, なかなか届かない.
メールサーバからの配送で以下のように詰まっていた.
$ mailq -Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient------- xxxxxxxxx 1522 Wed Jan 14 xx:xx:xx hoge@example.net (host mx.example.com[xx.xx.xx.xx] said: 451-xx.xx.xx.xx is not yet authorized to deliver mail from 451-このページに書かれているグレーリストの実装とかに引っかかっているのかもしれない. よくわからないが, もう一度試すように, キューをフラッシュしたら送れた.to . Please 451 try later. (in reply to RCPT TO command)) ml1@lists.examplle.com
$ postqueue -f(一般ユーザでフラッシュできたのはなぜ?)
2015-01-13
lpr: 'application/postscript' はサポートされていない形式です!
CUPS は Unix/Linux で使われる印刷サービスなのだけれど,
たまに設定ファイルが書き換わって印刷できなくなることがある.
なぜか, PS も PDF も受け付けない:-( /etc/cups/printers.conf に, 以下の3行を追記する. 追記する場所は,
追記するとき, 一度 CUPS を停止させておく.
/var/log/cups/access_log に
Print-Job client-error-document-format-not-supportedと出力され,
lpr コマンドを使うと
lpr: 'application/postscript' はサポートされていない形式です!というエラーが出ることがある.
なぜか, PS も PDF も受け付けない:-( /etc/cups/printers.conf に, 以下の3行を追記する. 追記する場所は,
<Printer> または <DefaultPrinter> と </Printer> の間.
複数のプリンタを設定している場合, それぞれに追記.
追記するとき, 一度 CUPS を停止させておく.
$ sudo service cups stop $ sudoedit /etc/cups/printers.conf $ sudo service cups start
2015-01-08
CentOS 6 plus で Intel NIC が使用できなくなる
CentOS 6 を使用していると, 以下のエラーが出て, NICが使用できなくなることがある.
CentOS plus の
kernel-2.6.32-431.el6.centos.plus.x86_64 などのカーネルを使用していると起こり,
本家の Redhat Enterprise Linux 6 では起こらないらしい.
e1000e 0000:03:00.0: eth0: Reset adapter unexpectedly e1000e 0000:03:00.0: eth0: Timesync Tx Control register not set as expected以下のコマンドで, centosplus を無効にして kernel をアップデートすればよい.
$ sudo yum --disablerepo=centosplus update 'kernel*'もし, centosplus から最新のカーネルをインストールしていたら, バージョン番号を添えて yum install をすればよかったかな.
$ sudo yum install kernel-2.6.32-504.3.3.el6.x86_64
2014-11-19
RPMのスペックファイルを自動修正
あるサーバでは, httpd の SUEXEC_UID_MIN を 500 より小さく設定しなければならず,
httpd が更新されるたびに RPM をビルドしなおしている.
修正するスクリプトを作ってみた.
#! /bin/bash date="$(LANG=C date +'%a %b %d %Y')" sed -i.suexec \ -e 's/^Release: \(.*\)/Release: \1o/' \ -e 's/--with-suexec-uidmin=500/--with-suexec-uidmin=499/' \ -e '/^%changelog/a\'"* $date Our Auto Patch Script\n- change SUEXEC_UID_MIN 500 -> 499\n" httpd.spec
2014-10-07
systemctl と chkconfig
EL7になって, サービス関連の操作が systemd になり,
これまでとコマンドが変わってしまった.
(互換性のため, service, chkconfig をつかってもフォワードしてくれる)
| EL6まで | EL7 | |
|---|---|---|
| サービスの開始 | service name start |
systemctl start name |
| サービスの停止 | service name stop |
systemctl stop name |
| サービスを起動時に開始する | chkconfig name on |
systemctl enable name |
| サービスを起動時に開始しない | chkconfig name off |
systemctl disable name |
| サービス一覧 | chkconfig --list |
systemctl list-unit-files |
| サービスの状態の表示 | service name status |
systemctl status name |
2014-08-16
RHEL7にてNFS上にホームディレクトリをおくときの設定
RHEL7のクローンであるSL7では,
ホームディレクトリをNFS上においていると, SSHでログインする際に公開鍵暗号による認証が使用できない.
以下の設定で, 回避する.
$ sudo setsebool -P use_nfs_home_dirs on
2014-08-15
Cadence Virtuoso on SL7
RHEL7のクローンであるSL7にて, Cadence Virtuoso 6.1.5 を動作させた.
Virtuoso の起動時,
sysnameというシェルスクリプトがKernelのバージョンからOSの種類を判定しているのだが,
3.10は対応していなかった.
以下のように書き換えることで, SL7でも起動するようになった.
--- IC06.15.171-615_lnx86.Hotfix/oa_v22.41.033/bin/sysname 2013-03-27 09:19:10.000000000 +0900
+++ IC06.15.171-615_lnx86.Hotfix/oa_v22.41.033/bin/sysname 2014-08-15 14:49:14.259021502 +0900
@@ -199,7 +199,7 @@
case $version in
2.4*) compiler="_gcc411"
sysname="linux_rhel30$compiler"; sysnames="$sysname linux$compiler";;
- 2.6*|3.0*) compiler="_gcc44x"
+ 2.6*|3.0*|3.10.*) compiler="_gcc44x"
sysname="linux_rhel40$compiler"; sysnames="$sysname linux$compiler";;
*) check_global;;
esac;;
バージョン番号がハードコードされており, 2.6 または 3.0 の場合には gcc-4.4, 2.4 の場合には, gcc-4.1.1 を使用すると書かれているようだ.
ここに, 3.10 を追加した.
ところで, -64オプションを付けておくと, 64ビット版で動作することが分かった.
これまで, 32ビットのライブラリをいちいちインストールしていたのだが, その必要はなかったようだ.
2014-04-01
Oracle_VM_VirtualBox_Extension_Pack を展開
Extension Pack をわざわざ root で Virtualbox を起動してインストールするのは面倒である.
以下のようにして展開すれば良いかもしれない.
$ sudo mkdir /usr/lib/virtualbox/ExtensionPacks/Oracle_VM_VirtualBox_Extension_Pack $ cd /usr/lib/virtualbox/ExtensionPacks/Oracle_VM_VirtualBox_Extension_Pack $ sudo tar xz <~/downloads/Oracle_VM_VirtualBox_Extension_Pack-4.3.10-93012.vbox-extpack
2013-10-18
vim with NFS4 home
ホームディレクトリを NFS4 でマウントしていると,
vim を終了した時に以下のエラーが出てくる.
E137: Viminfo file is not writable: /home/user/.viminfoこれは何なのだろう? このエラーが時々出るが, エラーが鬱陶しい以外には問題がない.
2013-06-21
iptables にて OS ごとに異なるルールを適用
iptables は, Linux でのルールベースのパケットフィルタツールである.
パケット毎にTCPヘッダやペイロードにおいて条件を検査し,
条件にマッチするものに操作 (破棄, 拒否, 許可など) を加えることができる.
ポート番号や送信元・送信先IPアドレスによる条件を作成することが多いが,
ここでは, OS毎に条件を変える方法を紹介したい.
例えば, 以下のような使用方法が考えられる.
iptables には, ttl と呼ばれるモジュールがあり,
例えば FORWARD を OS 毎に分ける場合は, 以下のように設定する.
- ウイルス感染が多いと言われる Windows からのパケットのみを除去する.
- Linux 上でのみ動作するソフトが使用するポートを開ける.
- Windows へは DHCP にてプロキシを通知できるので80番ポートは塞ぎ, その他のOSには80番ポートを開ける.
| 1-64 | Linux |
| 65-128 | Windows |
| 129-255 | Mac OS X, Solaris, BSD など (iPhone はここに含まれる) |
-A FORWARD -m ttl --ttl-lt 65 -g FORWARD-linux -A FORWARD -m ttl --ttl-lt 129 -g FORWARD-windows -A FORWARD -g FORWARD-mac
2013-06-18
RHEL6 で google-chrome のアップデートができなくなった
どうやら,
オブソリートなOSだって?!… Google ChromeはなぜRHEL 6のサポートをやめたのか
Jan Wildeboer の投稿
2013-06-29 追記.
Install Chromium (with Pepper Flash) on CentOS/Red Hat (RHEL) 6.4 というページが見つかった. RHEL 向けに, Chromium の RPM を作ってくれた人がいるようだ. ここかれ提供されている
インストール方法を説明しておく.
google-chrome については, 今後は RHEL6 (とそのクローン) のサポートがされないらしい.
$ sudo yum update google-chrome-stable
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
* sl: ftp1.scientificlinux.org
* sl-security: ftp1.scientificlinux.org
Setting up Update Process
Resolving Dependencies
--> Running transaction check
---> Package google-chrome-stable.x86_64 0:27.0.1453.110-202711 will be updated
---> Package google-chrome-stable.x86_64 0:28.0.1500.45-205727 will be an update
--> Processing Dependency: libstdc++.so.6(GLIBCXX_3.4.15)(64bit) for package: google-chrome-stable-28.0.1500.45-205727.x86_64
--> Finished Dependency Resolution
Error: Package: google-chrome-stable-28.0.1500.45-205727.x86_64 (google-chrome)
Requires: libstdc++.so.6(GLIBCXX_3.4.15)(64bit)
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
Install Chromium (with Pepper Flash) on CentOS/Red Hat (RHEL) 6.4 というページが見つかった. RHEL 向けに, Chromium の RPM を作ってくれた人がいるようだ. ここかれ提供されている
chromium も, /opt/chromium/ にインストールするようだ. google-chrome-stable をインストールしたままでも依存関係などは特に問題無さそう.
ユーザ毎の設定ファイルがどのように扱われるのかが気になる所だったが, 設定ファイルは ~/.config/chromium/ へ作成するようなので, 気軽に試してみれば良さそうだ.
インストール方法を説明しておく.
$ wget http://people.centos.org/hughesjr/chromium/6/chromium-el6.repo # cp chromium-el6.repo /etc/yum.repos.d/ # yum install chromium
chromium では, PDFを描画するエンジンが含まれていない.
これまで google-chrome を軽いPDFビュワーとしても使っていたので, 残念だ.
2013-04-30
PDFに含まれる画像を取り出す方法
RHEL (CentOS や Scientific Linux を含む) にインストールされている evince には,
PDF 中に含まれる画像をファイルとして取り出す機能が実装されている.
文字や図形の情報を含んで画像を生成する場合はスクリーンショットを使用するが,
PDF の画像のみを取り出す場合には便利である.
PDF を evince で開く.
画像の部分でマウス左ボタンを押す.
マウスを動かし, 適当な端末まで移動する.
左ボタンを離す. (要するに, 画像を端末へドラッグ&ドロップする.)
このとき, 画像がファイルとして保存され, 端末にはパスが入力される.
なお, evince では PostScript を開くこともできるが, このときには, 画像を取り出すことができないようだ.
このとき, 画像がファイルとして保存され, 端末にはパスが入力される.
FontPack910_jpn_i846-linux を展開
RHEL や CentOS に英語の acroread をインストールすると, 日本語のフォントが付属していないため, フォントが埋め込まれていない PDF を閲覧できない.
日本語の acroread は古いバージョンしか提供されていないので, 最新の acroread を日本語対応にしたい.
FontPack910_jpn_i486-linux.tar.bz2 が Adobe のサイトで配布されているが,
展開方法が明示されておらず, どのようにインストールすればよいか分からない.
そこで, 試行錯誤した方法を示す.
$ tar xvjf FontPack910_jpn_i486-linux.tar.bz2 JPNKIT/ JPNKIT/LANGJPN.TAR JPNKIT/LANGCOM.TAR JPNKIT/LICREAD.TXT JPNKIT/BINCOM.TAR JPNKIT/INSTALLどうやら, TAR が3個含まれているらしい. これをどこかのディレクトリで展開すれば良いのだろう.
$ tar tf JPNKIT/LANGJPN.TAR Adobe/Reader9/Resource/CIDFont/ Adobe/Reader9/Resource/CIDFont/KozMinPr6N-Regular.otf
Adobe/Reader9/ というディレクトリが含まれているので,
きっと /opt/Adobe/Reader9/ を指しているのだろう.
というわけで, /opt/ へ移動して, 展開することにする.
# cd /opt/ # tar xf /tmp/JPNKIT/BINCOM.TAR # tar xf /tmp/JPNKIT/LANGJPN.TAR # tar xf /tmp/JPNKIT/LANGCOM.TARこの後, acroread を再起動したら, 日本語の PDF も閲覧できるようになった.
登録:
投稿 (Atom)