ラベル Alma Linux の投稿を表示しています。 すべての投稿を表示
ラベル Alma Linux の投稿を表示しています。 すべての投稿を表示

2025年11月2日日曜日

LinuxMint / AlmaLinux 環境に LDAP を入れる

長年やりたいと思っていた  LDAP/389DirectoryServer をインストールできた.こちらのサイトを大いにコピー参考させていただいた.大変ありがたい.


こちらの環境は以下の通りなので,Server 側は一部読み替えが必要です.
Server:LinuxMint 
Client:AlmaLinux8 

Server側設定

LDAP/389DirectoryServer をインストール

 

生成した .inf の一部を書き換える.

 

インスタンスの生成と動作確認
 
→Activeになっていることを確認

ポート開放

クライアントから接続するためのポートをあける

 
 

sssd.ldif を作成

意識が低いので公開鍵認証ではなくパスフレーズ認証です.元記事にあった公開鍵認証のためのスキーマは読みません.

 

sssd.ldif を読む

 

補足:
   
modify operation type is missing at line 2, entry "ou=Users,dc=example,dc=com"
と表示されてる場合,ldapadd ではなく ldapmodify を実行している.ldapmodify を使う場合は,ldifにどのような変更を行うか記述が必要らしい.


再度実行してみる

 

ldif の情報が登録できたか確認する.
 

クライアント設定

sssdインストール

 

sssd.conf は Quita の記事のほぼそのままです.

 

 

SSSD 起動

 
→Activeになっていることを確認

動作確認
 

ユーザー情報取得

 


認証をSSSDに変更

 

ログインしてみよう.

 

.bashrc が読めていないけれど,ログインもできたしsudoもできた.ようやく使えるようになった.

LDAP初期化

LDAP の設定を初期化する際は消す前に一度止める必要があるらしい.LDAP 設定でおかしいなと思ったら,次の一連のコマンドを実行してまっさらな .inf ファイルから再構築していた.この知識がない段階では,LDAP  がうまくいかなくなったら OS まるごと再インストールしていた.(TATが…)

 

参考

こちらのサイトも参考にはしていたのだけれど,おそらく aci 設定が適切でなくてユーザー情報は引けたがログインには至らなかった.

いつも頼りにしている Server World さんの設定はすごくシンプルなんだがうまくいかない.

OpenLDAP : LDAP サーバーの設定
https://www.server-world.info/query?os=Rocky_Linux_8&p=openldap&f=1
OpenLDAP : LDAP クライアントの設定
https://www.server-world.info/query?os=Rocky_Linux_8&p=openldap&f=3

はまったこと

sssd.ldif に書いたパスワードの末尾に空白があるとパスフレーズ認証が通らない.これは平文でも暗号化していても同じ.これでずっと悩んでいて,うまく行ったりうまく行かなかったりぱっと見の再現性がなくてめっちゃこまっていた.
また /root/ds01.inf の先頭行が空欄になっていたのも問題だったかもしれない.とにかく設定中にエラーなり警告なりが出てくれないので難易度が高すぎる.

2025年11月1日土曜日

AlmaLinux8 で NFS を有効にする

基本的にこちらのサイトの通りにすればよい.

Server 側設定 (xx.xx.xx.141)

パッケージインストール
% dnf install -y rpcbind nfs-utils

共有ディレクトリ作成
% mkdir /mnt/disk1

exports記述
% vi /etc/exports
/mnt/disk1 xxx.xxx.xxx.0/24 (rw,no_root_squash,async)

サービス起動
% systemctl enable rpcbind
% systemctl restart rpcbind
% systemctl status rpcbind
→ Activeになっていることを確認
% systemctl enable nfs-server
% systemctl restart nfs-server
% systemctl status nfs-server
→ Activeになっていることを確認

Cliant 側設定 (xx.xx.xx.142)

パッケージインストール
% dnf install -y nfs-utils

マウント先作成
% mkdir /nfs/disk1

ここでマウントしてみるもうまく行かない
% mount -v -t nfs xx.xx.xx.141:/mnt/disk1 /nfs/disk1
mount.nfs: timeout set for Tue Oct 14 22:37:52 2025 mount.nfs: trying text-based options 'vers=4.2,addr=xx.xx.xx.141,clientaddr=xx.xx.xx.142' mount.nfs: mount(2): No route to host
mount.nfs: timeout set for Tue Oct 14 22:37:52 2025 mount.nfs: trying text-based options 'vers=4.2,addr=xx.xx.xx.141,clientaddr=xx.xx.xx.142' mount.nfs: mount(2): No route to host
^C

firewall で nfs サービスの有効が必要でした.

% firewall-cmd --add-service=nfs
success

% mount -v -t nfs xx.xx.xx.141:/mnt/disk1 /nfs/disk1
% ls /nfs/disk1
cad  home

無事開通!

/etc/fstabに記述する
% vim /etc/fstab
xx.xx.xx.141:/mnt/disk1 /nfs/disk1 nfs defaults 0 0

ちなみに Ubuntu で nfs を入れるには,ufs-common を使うようです.
% apt install nfs-common


2025年10月29日水曜日

Alma Linux 8 に各種 CAD を入れる

 Alma Linux 9 にて各種 CAD を動かそうと苦労していたけれど,Synopsys Container を使っても動かない CAD があったりするので(例えば WaveView ),結局諦めて Alma Linux 8.10 を入れることに.結論からすると最初から Alma Linux 8 を入れておけばよかったよ.(学生を待たせてしまって大変申し訳ないことをしてしまった)

Alma Linux 9 と異なり OS インストールはGUIで何も問題なく終わる.

学内のDNSサーバーだと名前解決できないので8.8.8.8を加える.

好みの問題だが,ウィンドウマネージャとして XFCE を入れる.次の Web ページの通りにすればよい.

Hspice は tcsh を入れたら動いた.

IC Compiler II を試す.
 libpng12 が要求された.SOURCEFORGE からダウンロード.

すると
% icc2_shell
/cad/synopsys/icc2/Q-2019.12-SP2/linux64/nwtn/bin/icc2_exec: /cad/synopsys/icc2/Q-2019.12-SP2/linux64/nwtn/bin/../shlib/libz.so.1: version `ZLIB_1.2.9' not found (required by /lib64/libpng16.so.16)
といわれる.zlib 1.2.9 を入れよう

ところが入れた zlib が読まれていないのか同じメッセージが出続ける.lib ファイルを指定するには LD_LIBRARY_PATH を指定すればよいらしいがうまくいかなかった.
% export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

LD_PRELOAD を指定したらうまくいった.
% LD_PRELOAD=/usr/local/lib/libz.so.1   /cad/synopsys/icc2/Q-2019.12-SP2/linux64/nwtn/bin/icc2_exec

WaveView を試す.libnsl が要求されたのでインストールする.すると
% wv
/lib64/libfontconfig.so.1: undefined symbol: FT_Done_MM_Var
と表示されて動かない.
次のサイトの通り LD_PRELOAD を指定してみたがうまくいかない.
% LD_PRELOAD=/lib64/libfontconfig.so.1 /cad/synopsys/wv/P-2019.06/platforms/linux64/bin/wv
別の例で同梱されている libfontconfig.so.1 を消してみよとのアドバイスがあった.

% mv /cad/synopsys/wv/P-2019.06/platforms/linux64/lib/libfreetype.so.6 /cad/synopsys/wv/P-2019.06/platforms/linux64/lib/libfreetype.so.6.bak
% wv
うごいた!

Virtuoso はおおよそ Alma Linux 9 と同じであった.以下をリポジトリもしくは rpm からインストール
dnf install ksh redhat-lsb apr-util
(redhad-lsb は epel-release が必要)
dnf install  compat-openssl10-1.0.2o-4.el8_10.1.x86_64.rpm compat-db-headers-4.7.25-28.amzn2.noarch.rpm compat-db47-4.7.25-28.amzn2.x86_64.rpm

% virtuoso
/cad/cadence/IC618.170/bin/virtuoso[113]: /cad/cadence/IC618.170/bin/cds_plat: not found [そのようなファイルやディレクトリはありません]
と表示される場合,cds_plat を動かすための shell (tcsh) が入っていないのでいれてやる.
% dnf install tcsh

こちらの環境では,Virtuoso と Xcelium を同時に PATH 指定していると,Virtuoso が Xcelium に同梱されているシェアードライブラリを見に行ってしまいうまく起動しない. 
% virtuoso
/cad/cadence/IC618.170/tools.lnx86/lib/64bit/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /cad/cadence/XCELIUM2409_Hotfix/tools.lnx86/lib/64bit/libvisadev.so)

これはよくわからなかったので,デフォルトでは Xcelium のPATHを外しておいて,Xceliumがほしいときに設定ファイルを読むことで運用による対応にしてしまった….( LD_LIBRARY_PATH でどうにかできるのかもしれないがうまくいかない…)

2025年9月13日土曜日

Alma Linux 9 で IC Compiler がうごかない (頑張ってQt4を入れる)

タイトルの通りだが,問題は以下の通り.
(1) IC Compiler が QT4 を必要とする.
% icc_shell
galaxy_icc_exec: error while loading shared libraries: libQtScript.so.4: cannot open shared object file: No such file or directory

(2) RPMで入れようとすると古い libc などが必要となって依存関係を解決できない.

(3) ということでQt4をソースから入れてみる.4.8.7が最終らしい.
https://download.qt.io/archive/qt/4.8/4.8.7/

(4) 結論として,Alma Linux 9 では IC Compiler は起動するようになったがすぐにセグフォでクラッシュしてしまう.

(a) Qt を入れる
Qt4.8.7 を解凍して,手順通りに ./configure → make → make install
% ./configure
% make
ssl/qsslcertificate.cpp:504:36: エラー: invalid use of incomplete type ‘EVP_PKEY’ {aka ‘struct evp_pkey_st’}
  504 |     } else if (q_EVP_PKEY_type(pkey->type) == EVP_PKEY_DH) {

エラーがでる,古い OpenSSL (1.0.1系より前) のAPIを使っているため,古い OpenSSL を落としてくる.(セキュリティー的にどうよ)
https://openssl-library.org/source/old/1.0.1/

ただ,試したときに configure のオプションに -no-openssl というのがあったので,そっちにしてみよう.

% ./configure -no-openssl
% gmake
dialogs/qprintdialog_unix.cpp:281:19: エラー: ‘class Ui::QPrintPropertiesWidget’ has no member named ‘cupsPropertiesPage’
  281 |     delete widget.cupsPropertiesPage;
      |                   ^~~~~~~~~~~~~~~~~~

https://forum.qt.io/topic/142527/qt-4-8-7-compilation-fails-qprint-errors/4
コードにバグがあるから直せとのこと.

qt-everywhere-opensource-src-4.8.7/src/corelib/global/qglobal.h
の2500行目の break continue にする.もなおらないなぁ,次の記事だと,cups 関係だから --no-cups にすればよいとのこと.
https://blog.csdn.net/weixin_43777852/article/details/125395832

別のエラーが発生する.
% ./configure -no-openssl --no-cups
% gmake
../3rdparty/javascriptcore/JavaScriptCore/wtf/TypeTraits.h:173:69: エラー: ‘std::tr1’ has not been declared

std::tr1 は C++11 のプレビュー版にあって,2011 年以降デフォルトでサポートしていない,とのこと.
https://forum.qt.io/topic/94118/attempting-to-deal-with-qtbug-41361/2

Windows だと mkspecs\win32-g++\qmake.conf に
QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -std=gnu++98
を書き足せとのこと.
https://stackoverflow.com/questions/52061472/installing-qt-from-source-v-4-8-6
https://stackoverflow.com/questions/10354371/stdtr1-has-not-been-declared

こいつは Linux なんだよなぁ,ということで調べたら
mkspecs/linux-g++-32/qmake.conf
mkspecs/linux-g++-64/qmake.conf

があったのでそれぞれ
QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -std=gnu++98
と書き足してみる.しかしうまくいかない ($$を$にしてもだめ).

パッチがあるらしい.
https://hg.slitaz.org/wok-current/rev/03352f30e977
以下の二つのファイルに上記オプション相当を書き足してみる.
qt-everywhere-opensource-src-4.8.6/src/script/script.pro
qt-everywhere-opensource-src-4.8.7/src/plugins/accessible/widgets/widgets.pro

% ./configure -no-openssl --no-cups
% gmake
また別のエラー
messagemodel.cpp:186:61: エラー: ordered comparison of pointer with integer zero (‘MessageItem*’ and ‘int’)

パッチがあるみたい.
https://aur.archlinux.org/packages/qt4?O=30
以下のファイルを書き換える.
tools/linguist/linguist/messagemodel.cpp

% ./configure -no-openssl --no-cups
% gmake
% sudo make install

Qt4 はいったぞ.

% icc_shell
galaxy_icc_exec: error while loading shared libraries: libQtScript.so.4: cannot open shared object file: No such file or directory

シェアードオブジェクトが PATH にないみたい.Qt4 については以下にあるようだ.

% ls /usr/local/**/libQtScript.so.4
/usr/local/Trolltech/Qt-4.8.7/lib/libQtScript.so.4

LD_LIBRARY_PATHに書いてあげる.
https://qiita.com/Alaska_Panda/items/7b34e8236696039f6f42
% export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/usr/local/Trolltech/Qt-4.8.7/lib

再実行
% icc_shell
(略)
icc_shell>

ようやく起動した,長い戦いであった.

と思っていたのだが,すごく遅い上にものすごい高確率でセグメンテーションフォルトで死ぬので実質使えないかも….

---その2---

Qt の問題について gcc のバージョンを変えろとある.
https://gcc.gnu.org/pipermail/gcc/2020-May/232481.html
https://discuss.getsol.us/d/8439-qt487

gcc-75 にしてみる.
https://bigsearcher.com/mirrors/gcc/releases/gcc-7.5.0/

解凍,gcc ディレクトリで以下を実行して gmp,mpfr,mpc,islをダウンロード.
./contrib/download_prerequisites

解凍,build ディレクトリを掘って configure
% ../configure --program-suffix=-7.5.0 --disable--multilib
/usr/bin/ld: cannot find crt1.o: No such file or directory

i686 の glibc がいるみたい.(--disable-multilibが効かない?)
このあたりを参考にした.
http://blog.livedoor.jp/itukano/archives/51848514.html
https://nextremer-nbo.blogspot.com/2018/09/fedora28gcc73.html
https://stackoverflow.com/questions/6329887/how-to-fix-linker-error-cannot-find-crt1-o

% sudo dnf install glibc-devel.i686 
% ../configure --program-suffix=-7.5.0 --disable--multilib
% make
../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:157:10: fatal error: linux/cyclades.h: そのようなファイルやディレクトリはありません

Bug 100379 - cyclades.h is removed from linux kernel header files
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100379

コードを書き換えろとのこと.変更点は次の通り.
https://github.com/easybuilders/easybuild-easyconfigs/pull/14453/commits/e495b58ff4c4a95fdffd9bef635cf05205626ec2

また止まる
% make
../../../../libsanitizer/sanitizer_common/sanitizer_internal_defs.h:261:72: error: size of array ‘assertion_failed__1139’ is negative

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105029
古いバージョンはもうメンテしていないから自分で直せとのこと.変更点は次の通り.
https://gcc.gnu.org/cgit/gcc/commit/?id=75003cdd23c310

% make

なんかコンパイルできたぞ.

% sudo make install
% which gcc-7.5.0
/usr/local/bin/gcc-7.5.0

古い GCC を使うようにリンクを張り替える.これでいいのかよくわからない.
sudo mv /usr/bin/gcc /usr/bin/gcc-11
sudo mv /usr/bin/gcc-ar /usr/bin/gcc-ar-11
sudo mv /usr/bin/gcc-nm /usr/bin/gcc-nm-11
sudo mv /usr/bin/gcc-ranlib /usr/bin/gcc-ranlib-11
sudo mv /usr/bin/g++ /usr/bin/g++-11
sudo ln -s /usr/local/bin/gcc-7.5.0 /usr/bin/gcc
sudo ln -s /usr/local/bin/gcc-ar-7.5.0 /usr/bin/gcc-ar
sudo ln -s /usr/local/bin/gcc-nm-7.5.0 /usr/bin/gcc-nm
sudo ln -s /usr/local/bin/gcc-ranlib-7.5.0 /usr/bin/gcc-ranlib
sudo ln -s /usr/local/bin/g++-7.5.0 /usr/bin/g++

(a) に戻る.

% ./configure -no-openssl --no-cups
% gmake
% sudo make install

再実行
% icc_shell -gui
(略)
icc_shell>

やっぱりウィンドウ立ち上げたりするとすぐにセグフォでクラッシュしてしまう.これはだめかもしれん.

---OMAKE---

IC Compiler II は以下のトラブルがあった.

% icc2_shell
bin/icc2_exec: symbol lookup error: /lib64/libkrb5.so.3: undefined symbol: krb5int_c_deprecated_enctype, version k5crypto_3_MIT

これもググっても調べてわからなかったのだが,結局
% dnf provides libkrb5.so.3
krb5-libs-1.21.1-8.el9_6.i686 : The non-admin shared libraries used by Kerberos 5
Repo        : baseos
一致:
提供する    : libkrb5.so.3

krb5-libs-1.21.1-8.el9_6.i686 : The non-admin shared libraries used by Kerberos 5
Repo        : baseos
一致:
提供する    : libkrb5.so.3

ということで,krb5-libs-1.21.1-8.el9_6.x84_64 を入れたらちゃんと起動した.ICC2 は QT4 をつかっていないのね.Primewave も起動した.

2025年9月5日金曜日

Alma Linux 9 に Virtuoso (IC618.170)を入れる

新しいサーバーをセットアップして Virtuoso を入れるのは毎回大騒ぎである.(正確には CentOS 7 が入っていたマシンを AlmaLinux 9.6 にアップグレードした)

lsb_release が無いので Linux のバージョンがわからないと言われる.RHEL9系の標準のリポジトリには lsb_release が無いので EPEL を使う.

https://rhel.pkgs.org/9/epel-aarch64/lsb_release-3.2-2.el9.noarch.rpm.html
https://www.server-memo.net/almalinux/almalinux9_epelrepo.html

% dnf install -y dnf-plugins-core
% dnf config-manager --enable crb
% dnf -y install epel-release
% dnf install -y epel-next-release
% dnf install -y lsb_release

libcrypto.so.10 が無いといわれる.RHEL9 系では compat-openssl11 になってしまった.RHEL8 向けの RPM を入れる.

https://forums.almalinux.org/t/almalinux-9-cant-find-libcrypto-so-10-or-libssl-so-10/3952/4
https://www.rpmfind.net/linux/rpm2html/search.php?query=libcrypto.so.10()(64bit)

% dnf install compat-openssl10-1.0.2o-4.el8_10.1.x86_64.rpm

libdb-4.7 も必要だが 5.3 しかないので RPM を落として入れる.

https://amazonlinux.pkgs.org/2/amazonlinux-core-x86_64/compat-db47-4.7.25-28.amzn2.x86_64.rpm.html
https://amazonlinux.pkgs.org/2/amazonlinux-core-x86_64/compat-db-headers-4.7.25-28.amzn2.noarch.rpm.html

% dnf install compat-db47-4.7.25-28.amzn2.x86_64.rpm compat-db-headers-4.7.25-28.amzn2.noarch.rpm

あとは地道に virtuoso 起動 → シェアードオブジェクト無い → dnf provides "シェアードオブジェクト" → パッケージを見つけて dnf install を繰り返す.dnf provides で出てきたパッケージが i686 だったりするが,これは x86_64 に読み替えてインストールする.

dlopen failed to open 'libdb.so' と言われる. /lib64/libdl.so が無いので /lib64/libdl.so.2 をスタティックリンクしてあげる.以下がヒントになった.
https://www.linuxquestions.org/questions/linux-newbie-8/dlopen-failed-to-open-%27libdl-so-error-4175493930/

% sudo ln -s /lib64/libdl.so.2  /lib64/libdl.so

最初 Cadence Community の議論から db4-devel-4.7 (そのためにdb4とdb4-cxxも必要)を入れると良さそうと思って頑張って入れたのだが変化無かった.RHEL6 の RPM 入れたからかもだが….
https://community.cadence.com/cadence_technology_forums/f/custom-ic-design/31432/cadence-ic-base-6-15-011-hotfix-6-15-171-problem

64bit バイナリで動かすなら「環境変数 CDS_AUTO_64BIT をALL」も必要かもしれない.
https://www.anagix.com/gijutsu-memo/artistmemo/ic617dedlopenfailedtoopenlibdlsoerror

入れるだけ入れたが,キーボード入力がおかしい.qwerty が c.gvn になってしまう.後半に続く.