変奏現実

パソコンやMMORPGのことなどを思いつくまま・・・記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。

この画面は、簡易表示です

OpenSSL

[CentOS8]Node.jsとか

パッケージ管理がdnfに変わったので

# dnf info nodejs
利用可能なパッケージ
名前         : nodejs
エポック     : 1
バージョン   : 10.19.0
リリース     : 1.module_el8.1.0+277+2bccb1a9
Arch         : x86_64
サイズ       : 9.0 M
ソース       : nodejs-10.19.0-1.module_el8.1.0+277+2bccb1a9.src.rpm
リポジトリー : AppStream
概要         : JavaScript runtime
URL          : http://nodejs.org/
ライセンス   : MIT and ASL 2.0 and ISC and BSD
説明         : Node.js is a platform built on Chrome's JavaScript runtime
             : for easily building fast, scalable network applications.
             : Node.js uses an event-driven, non-blocking I/O model that
             : makes it lightweight and efficient, perfect for data-intensive
             : real-time applications that run across distributed devices.
# dnf info python36
インストール済みパッケージ
名前         : python36
バージョン   : 3.6.8
リリース     : 2.module_el8.1.0+245+c39af44f
Arch         : x86_64
サイズ       : 13 k
ソース       : python36-3.6.8-2.module_el8.1.0+245+c39af44f.src.rpm
リポジトリー : @System
repo から    : AppStream
概要         : Interpreter of the Python programming language
URL          : https://www.python.org/
ライセンス   : Python
説明         : Python is an accessible, high-level, dynamically typed,
             : interpreted programming language, designed with an emphasis on
             : code readibility. It includes an extensive standard library, and
             : has a vast ecosystem of third-party libraries.
             :
             : The python36 package provides the "python3.6" executable: the
             : reference interpreter for the Python language, version 3.
             : The package also installs the "python3" executable which is user
             : configurable using the "alternatives --config python3" command.
             : For the unversioned "python" command, see manual page
             : "unversioned-python".
             :
             : The python36-devel package contains files for dovelopment of
             : Python application and the python36-debug is helpful for
             : debugging.
             :
             : Packages containing additional libraries for Python 3.6 are
             : generally named with the "python3-" prefix.
# dnf info openssl
インストール済みパッケージ
名前         : openssl
エポック     : 1
バージョン   : 1.1.1c
リリース     : 2.el8
Arch         : x86_64
サイズ       : 1.2 M
ソース       : openssl-1.1.1c-2.el8.src.rpm
リポジトリー : @System
repo から    : anaconda
概要         : Utilities from the general purpose cryptography library with TLS
             : implementation
URL          : http://www.openssl.org/
ライセンス   : OpenSSL
説明         : The OpenSSL toolkit provides support for secure communications
             : between machines. OpenSSL includes a certificate management tool
             : and shared libraries which provide various cryptographic
             : algorithms and protocols.

おっとupdateしてなかった。

# dnf update
================================================================================
 パッケージ           Arch   バージョン                         Repo      サイズ
================================================================================
インストール:
 kernel               x86_64 4.18.0-147.5.1.el8_1               BaseOS    1.5 M
 kernel-core          x86_64 4.18.0-147.5.1.el8_1               BaseOS     25 M
 kernel-modules       x86_64 4.18.0-147.5.1.el8_1               BaseOS     22 M
アップグレード:
 qemu-guest-agent     x86_64 15:2.12.0-88.module_el8.1.0+266+ba744077.2
                                                                AppStream 206 k
 NetworkManager       x86_64 1:1.20.0-5.el8_1                   BaseOS    2.1 M
 NetworkManager-libnm x86_64 1:1.20.0-5.el8_1                   BaseOS    1.7 M
 NetworkManager-team  x86_64 1:1.20.0-5.el8_1                   BaseOS    133 k
 NetworkManager-tui   x86_64 1:1.20.0-5.el8_1                   BaseOS    308 k
 glibc                x86_64 2.28-72.el8_1.1                    BaseOS    3.7 M
 glibc-common         x86_64 2.28-72.el8_1.1                    BaseOS    836 k
 glibc-devel          x86_64 2.28-72.el8_1.1                    BaseOS    1.0 M
 glibc-headers        x86_64 2.28-72.el8_1.1                    BaseOS    469 k
 glibc-langpack-ja    x86_64 2.28-72.el8_1.1                    BaseOS    323 k
 grub2-common         noarch 1:2.02-78.el8_1.1                  BaseOS    882 k
 grub2-pc             x86_64 1:2.02-78.el8_1.1                  BaseOS     36 k
 grub2-pc-modules     noarch 1:2.02-78.el8_1.1                  BaseOS    859 k
 grub2-tools          x86_64 1:2.02-78.el8_1.1                  BaseOS    2.0 M
 grub2-tools-extra    x86_64 1:2.02-78.el8_1.1                  BaseOS    1.1 M
 grub2-tools-minimal  x86_64 1:2.02-78.el8_1.1                  BaseOS    201 k
 kernel-tools         x86_64 4.18.0-147.5.1.el8_1               BaseOS    1.7 M
 kernel-tools-libs    x86_64 4.18.0-147.5.1.el8_1               BaseOS    1.5 M
 libarchive           x86_64 3.3.2-8.el8_1                      BaseOS    359 k
 openldap             x86_64 2.4.46-11.el8_1                    BaseOS    352 k
 openldap-devel       x86_64 2.4.46-11.el8_1                    BaseOS    811 k
 openssh              x86_64 8.0p1-4.el8_1                      BaseOS    496 k
 openssh-clients      x86_64 8.0p1-4.el8_1                      BaseOS    704 k
 openssh-server       x86_64 8.0p1-4.el8_1                      BaseOS    485 k
 policycoreutils      x86_64 2.9-3.el8_1.1                      BaseOS    377 k
 python3-perf         x86_64 4.18.0-147.5.1.el8_1               BaseOS    1.6 M
 sqlite-libs          x86_64 3.26.0-4.el8_1                     BaseOS    579 k
 systemd              x86_64 239-18.el8_1.4                     BaseOS    3.5 M
 systemd-libs         x86_64 239-18.el8_1.4                     BaseOS    562 k
 systemd-pam          x86_64 239-18.el8_1.4                     BaseOS    232 k
 systemd-udev         x86_64 239-18.el8_1.4                     BaseOS    1.3 M
 tuned                noarch 2.12.0-3.el8_1.1                   BaseOS    275 k
 cacti                noarch 1.2.9-1.el8                        epel       20 M
 epel-release         noarch 8-8.el8                            epel       22 k
依存関係のインストール:
 grub2-tools-efi      x86_64 1:2.02-78.el8_1.1                  BaseOS    465 k

トランザクションの概要
================================================================================
インストール     4 パッケージ
アップグレード  34 パッケージ

ダウンロードサイズの合計: 100 M
これでよろしいですか? [y/N]: y
(中略)
アップグレード済み:
  qemu-guest-agent-15:2.12.0-88.module_el8.1.0+266+ba744077.2.x86_64
  NetworkManager-1:1.20.0-5.el8_1.x86_64
  NetworkManager-libnm-1:1.20.0-5.el8_1.x86_64
  NetworkManager-team-1:1.20.0-5.el8_1.x86_64
  NetworkManager-tui-1:1.20.0-5.el8_1.x86_64
  glibc-2.28-72.el8_1.1.x86_64
  glibc-common-2.28-72.el8_1.1.x86_64
  glibc-devel-2.28-72.el8_1.1.x86_64
  glibc-headers-2.28-72.el8_1.1.x86_64
  glibc-langpack-ja-2.28-72.el8_1.1.x86_64
  grub2-common-1:2.02-78.el8_1.1.noarch
  grub2-pc-1:2.02-78.el8_1.1.x86_64
  grub2-pc-modules-1:2.02-78.el8_1.1.noarch
  grub2-tools-1:2.02-78.el8_1.1.x86_64
  grub2-tools-extra-1:2.02-78.el8_1.1.x86_64
  grub2-tools-minimal-1:2.02-78.el8_1.1.x86_64
  kernel-tools-4.18.0-147.5.1.el8_1.x86_64
  kernel-tools-libs-4.18.0-147.5.1.el8_1.x86_64
  libarchive-3.3.2-8.el8_1.x86_64
  openldap-2.4.46-11.el8_1.x86_64
  openldap-devel-2.4.46-11.el8_1.x86_64
  openssh-8.0p1-4.el8_1.x86_64
  openssh-clients-8.0p1-4.el8_1.x86_64
  openssh-server-8.0p1-4.el8_1.x86_64
  policycoreutils-2.9-3.el8_1.1.x86_64
  python3-perf-4.18.0-147.5.1.el8_1.x86_64
  sqlite-libs-3.26.0-4.el8_1.x86_64
  systemd-239-18.el8_1.4.x86_64
  systemd-libs-239-18.el8_1.4.x86_64
  systemd-pam-239-18.el8_1.4.x86_64
  systemd-udev-239-18.el8_1.4.x86_64
  tuned-2.12.0-3.el8_1.1.noarch
  cacti-1.2.9-1.el8.noarch
  epel-release-8-8.el8.noarch

インストール済み:
  kernel-4.18.0-147.5.1.el8_1.x86_64
  kernel-core-4.18.0-147.5.1.el8_1.x86_64
  kernel-modules-4.18.0-147.5.1.el8_1.x86_64
  grub2-tools-efi-1:2.02-78.el8_1.1.x86_64

完了しました!

自動アップデートの方法が変わったらしい。

# dnf install dnf-automatic
メタデータの期限切れの最終確認: 0:07:14 時間前の 2020年05月01日 10時03分10秒 に 実施しました。
依存関係が解決しました。
================================================================================
 パッケージ           Arch          バージョン              リポジトリー  サイズ
================================================================================
インストール:
 dnf-automatic        noarch        4.2.7-7.el8_1           BaseOS        136 k

トランザクションの概要
================================================================================
インストール  1 パッケージ

ダウンロードサイズの合計: 136 k
インストール済みのサイズ: 46 k
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
dnf-automatic-4.2.7-7.el8_1.noarch.rpm          482 kB/s | 136 kB     00:00
--------------------------------------------------------------------------------
合計                                            105 kB/s | 136 kB     00:01
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備             :                                                        1/1
  インストール中   : dnf-automatic-4.2.7-7.el8_1.noarch                     1/1
  scriptletの実行中: dnf-automatic-4.2.7-7.el8_1.noarch                     1/1
  検証             : dnf-automatic-4.2.7-7.el8_1.noarch                     1/1

インストール済み:
  dnf-automatic-4.2.7-7.el8_1.noarch

完了しました!
※ /etc/dnf/dnf-automatic.comfのapply_updates = no ⇒ yes に変える
# systemctl enable dnf-automatic
The unit files have no installation config (WantedBy, RequiredBy, Also, Alias
settings in the [Install] section, and DefaultInstance for template units).
This means they are not meant to be enabled using systemctl.
Possible reasons for having this kind of units are:
1) A unit may be statically enabled by being symlinked from another unit's
   .wants/ or .requires/ directory.
2) A unit's purpose may be to act as a helper for some other unit which has
   a requirement dependency on it.
3) A unit may be started when needed via activation (socket, path, timer,
   D-Bus, udev, scripted systemctl call, ...).
4) In case of template units, the unit is meant to be enabled with some
   instance name specified.
# systemctl start dnf-automatic

でも、systemctl status dnf-automaticで調べると
inactiveなんだけど?

yum同様にミラーリポジトリィを使う

fastestmirror=true ※ 追記する


OpenSSL

Python3.8.0のコンパイルにOpenSSL 1.0.2 以上が必要らしい。
でも、Debian openssl で検索すると、
パッケージ: openssl (1.0.1t-1+deb8u12) [security]
なので、openSSLのダウンロードページからダウンロードしてビルド。

参考:LinuxにApacheとOpenSSLをソースからビルドしてインストールする

$ wget https://www.openssl.org/source/openssl-1.0.2t.tar.gz
$ tar xvzf openssl-1.0.2t.tar.gz
・・・
$ cd openssl-1.0.2t
$ sudo ./config --prefix=/usr/local/openssl-1.0.2t shared zlib
・・・
Configured for linux-armv4.
$ sudo make
・・・
$ sudo make install
penSSL shared libraries have been installed in:
  /usr/local/openssl-1.0.2t
If this directory is not in a standard system path for dynamic/shared
libraries, then you will have problems linking and executing
applications that use OpenSSL libraries UNLESS:
* you link with static (archive) libraries.  If you are truly
  paranoid about security, you should use static libraries.
* you use the GNU libtool code during linking
  (http://www.gnu.org/software/libtool/libtool.html)
* you use pkg-config during linking (this requires that
  PKG_CONFIG_PATH includes the path to the OpenSSL shared
  library directory), and make use of -R or -rpath.
  (http://www.freedesktop.org/software/pkgconfig/)
* you specify the system-wide link path via a command such
  as crle(1) on Solaris systems.
* you add the OpenSSL shared library directory to /etc/ld.so.conf
  and run ldconfig(8) on Linux systems.
* you define the LD_LIBRARY_PATH, LIBPATH, SHLIB_PATH (HP),
  DYLD_LIBRARY_PATH (MacOS X) or PATH (Cygwin and DJGPP)
  environment variable and add the OpenSSL shared library
  directory to it.
One common tool to check the dynamic dependencies of an executable
or dynamic library is ldd(1) on most UNIX systems.
See any operating system documentation and manpages about shared
libraries for your version of UNIX.  The following manpages may be
helpful: ld(1), ld.so(1), ld.so.1(1) [Solaris], dld.sl(1) [HP],
ldd(1), crle(1) [Solaris], pldd(1) [Solaris], ldconfig(8) [Linux],
chatr(1) [HP].
・・・
$ ldd /usr/local/openssl-1.0.2t/bin/openssl
        linux-vdso.so.1 (0xbee33000)
        libssl.so.1.0.0 => /usr/local/openssl-1.0.2t/lib/libssl.so.1.0.0 (0xb6f0d000)
        libcrypto.so.1.0.0 => /usr/local/openssl-1.0.2t/lib/libcrypto.so.1.0.0 (0xb6d7b000)
        libdl.so.2 => /lib/arm-linux-gnueabi/libdl.so.2 (0xb6d68000)
        libz.so.1 => /lib/arm-linux-gnueabi/libz.so.1 (0xb6d40000)
        libc.so.6 => /lib/arm-linux-gnueabi/libc.so.6 (0xb6bf7000)
        /lib/ld-linux.so.3 (0xb6f72000)
$ vi /etc/ld.so.conf.d/arm-openssl-1.0.2t.conf
a
# openssl-1.0.2t
/usr/local/openssl-1.0.2t/lib
$ sudo ldconfig

共有ライブラリィのパスに登録
あれれ?名前が1.0.0じゃないか???
Pythonは1.0.2以上がががとエラる。
諦めて最新の安定版ver1.1.1dを試す。

$ wget https://www.openssl.org/source/openssl-1.1.1d.tar.gz
$ tar xvzf openssl-1.1.1d.tar.gz
…
$ sudo ./config --prefix=/usr/local/openssl-1.1.1d shared zlib
Operating system: armv7l-whatever-linux2
Configuring OpenSSL version 1.1.1d (0x1010104fL) for linux-armv4
Using os-specific seed configuration
Creating configdata.pm
Creating Makefile
**********************************************************************
***                                                                ***
***   OpenSSL has been successfully configured                     ***
***                                                                ***
***   If you encounter a problem while building, please open an    ***
***   issue on GitHub <https://github.com/openssl/openssl/issues>  ***
***   and include the output from the following command:           ***
***                                                                ***
***       perl configdata.pm --dump                                ***
***                                                                ***
***   (If you are new to OpenSSL, you might want to consult the    ***
***   'Troubleshooting' section in the INSTALL file first)         ***
***                                                                ***
**********************************************************************
$ sudo make
…
$ sudo make install
…
$ ldd /usr/local/openssl-1.1.1d/bin/openssl
        linux-vdso.so.1 (0xbeade000)
        libssl.so.1.1 => not found
        libcrypto.so.1.1 => not found
        libz.so.1 => /lib/arm-linux-gnueabi/libz.so.1 (0xb6f6c000)
        libdl.so.2 => /lib/arm-linux-gnueabi/libdl.so.2 (0xb6f59000)
        libpthread.so.0 => /lib/arm-linux-gnueabi/libpthread.so.0 (0xb6f30000)
        libc.so.6 => /lib/arm-linux-gnueabi/libc.so.6 (0xb6de7000)
        /lib/ld-linux.so.3 (0xb6f94000)
$ vi /etc/ld.so.conf.d/arm-openssl-1.1.1d.conf
a
# openssl-1.1.1d.
/usr/local/openssl-1.1.1d/lib
$ sudo ldconfig




top