短時間で学ぶサーバ設定術 Technology

How to Install Certbot from Sources Using Python PIP

by e-Manabix


Posted on 2024年5月27日 (月) in Technology


先に、certbot 2.10.0のインストール記事を書きましたが、アプリケーションを更新する段階で、ファイルの依存関係が崩れたようで、使えなくなりました。

このため、Certbotのソースファイルから、Python PIPを使用して、インストールする方法を採用することにしました。

この方法でインストールしたcertbotでも、Let's EncryptによるWeb認証ができますので、お試しください。

なお、前回同様に、無保証ですので、自己責任でお試しください。

 #How to Install Certbot from Sources Using Python Pip for Let's Encrypt on AlmaLinux 9

(1) OS
cat /etc/redhat-release 
Almalinux release 9.4

(2) Pip Install
which pip
dnf -y install pip
##  python3-pip-21.2.3-8.el9.noarch
##完了しました!

(3) Certbot Download
https://sourceforge.net/projects/certbot.mirror/files/v2.10.0/

wget https://sourceforge.net/projects/certbot.mirror/files/v2.10.0/certbot-2.10.0.tar.gz

ls -al certbot*
-rw-r--r--  1 root  root 437757  4月  4 07:16 certbot-2.10.0.tar.gz

gunzip certbot-2.10.0.tar.gz

tar xvf certbot-2.10.0.tar

tree certbot-2.10.0

certbot-2.10.0
├── changelog.md
├── license.txt
├── manifest.in
├── pkg-info
├── readme.rst
├── certbot
│   ├── __init__.py
│   ├── interfaces.py
│   ├── main.py
│   ├── ocsp.py
│   └── util.py
├── setup.cfg
└── setup.py

(4) Certbot Install
pip install ./certbot-2.10.0

##Using legacy 'setup.py install' for certbot, since package 'wheel' is not installed.
##Installing collected packages: pycparser, cffi, cryptography, urllib3, pytz, PyOpenSSL, idna, charset-normalizer, certifi, zipp, requests, pyrfc3339, josepy, parsedatetime, importlib-metadata, configobj, ConfigArgParse, acme, certbot
##    Running setup.py install for certbot ... done
##Successfully installed ConfigArgParse-1.7 PyOpenSSL-24.1.0 acme-2.10.0 certbot-2.10.0 certifi-2024.2.2 cffi-1.16.0 charset-normalizer-3.3.2 configobj-5.0.8 cryptography-42.0.7 idna-3.7 importlib-metadata-7.1.0 josepy-1.14.0 parsedatetime-2.6 pycparser-2.22 pyrfc3339-1.1 pytz-2024.1 requests-2.32.2 urllib3-2.2.1 zipp-3.19.0

which certbot
/usr/local/bin/certbot

/usr/local/bin/certbot --version
certbot 2.10.0


How to Install Certbot for Let's Encrypt on AlmaLinux 9

by e-Manabix


Posted on 2024年4月24日 (水) in OS


CentOS 7のサポート期限が迫ってきたので、新しくAlmaLinux 9.3に移行しようとして、遭遇したトラブル対策のメモです。

一般に、yum updateは、日々実行するコマンドで、非常に、優先度の高いコマンドです。

このため、OSインストール直後に、このコマンドを実行してしまい、パッケージ間の依存関係に問題が生じたようで、certbotがインストールできないという問題に遭遇しました。

結論から言いますと、snapとcertbotをインストールした後で、yum updateコマンドを実行しないと、certbotがインストールできないと言う事です。
このため、メールとWebのためのcertbotのインストールは、ユーザとfirewallの設定に次いで、優先度の高い処理となります。

以下が、実行例で、dnfは、yumの新しいコマンドです。
なお、コピーして、shellスクリプトとして使えるように、実行結果の先頭には、##を付けています。

ただし、内容は、無保証ですので、自己責任で実施ください。
また、問い合わせにも、対応していません。

#How to Install Certbot by Using Snap for Let's Encrypt on AlmaLinux 9.3

cat /etc/redhat-release
##AlmaLinux release 9.3

echo "1. install epel-relese"
dnf -y install epel-release

dnf repolist
##repo id               repo name
##appstream             AlmaLinux 9 - AppStream
##baseos                AlmaLinux 9 - BaseOS
##epel                  Extra Packages for Enterprise Linux 9 - x86_64
##extras                AlmaLinux 9 - Extras

dnf search all snapd
##Extra Packages for Enterprise Linux 9 - x86_64  699 kB/s |  21 MB     00:30    
##========================== Name & URL Matched: snapd ===========================
##snapd.x86_64 : A transactional software package manager
##:省略

echo "2. install snapd"
dnf -y install snapd
##Installing:
## snapd                          x86_64   2.61.2-0.el9         epel         16 M
##:省略
##Complete!

which snap
##/usr/bin/snap

snap version
##snap    2.61.2-0.el9
##snapd   unavailable
##series  -

echo "3. enable snaps.socket"
systemctl enable --now snapd.socket
##Created symlink /etc/systemd/system/sockets.target.wants/snapd.socket → /usr/lib/systemd/system/snapd.socket.

systemctl status snapd.socket
##● snapd.socket - Socket activation for snappy daemon
##     Loaded: loaded (/usr/lib/systemd/system/snapd.socket; enabled; preset: dis>

snap version
##snap       2.61.2-0.el9
##snapd      2.61.2-0.el9
##series     16

echo "4. symbolic link"
ln -s /var/lib/snapd/snap /snap

echo "5. install certbot"
snap install --classic certbot
##certbot 2.10.0 from Certbot Project (certbot-eff✓) installed

ls -al /snap/bin/certbot
##lrwxrwxrwx 1 root root 13 Apr 23 14:14 /snap/bin/certbot -> /usr/bin/snap

which certbot
##/var/lib/snapd/snap/bin/certbot

certbot --version
##certbot 2.10.0

echo "6. yum update"
dnf -y upgrade

#def -y install <packages>

dnf -y upgrade
##Killed

#if you have any trouble such as above, remove repositories of epel and epel-cisco-openh264.

echo "7. remove peel-release"
dnf -y remove epel-release
##Removed:
##  epel-release-9-7.el9.noarch
##Complete!

dnf repolist
##repo id                            repo name
##appstream                          AlmaLinux 9 - AppStream
##baseos                             AlmaLinux 9 - BaseOS
##extras                             AlmaLinux 9 - Extras

echo "8. disable snaps.socket"
systemctl disable snapd.socket


Differences of MathML MFENCED Tag for Firefox and Safari

by e-Manabix


Posted on 2020年5月28日 (木) in Technology


MathML MFENCED タグの差異

新型コロナ(COVID-19)の影響で、遠隔教育が必要になり、MathML (Mathematical Markup Language)で行列や行列式の試験問題を作ったところ、学生から数式が正しく表示できないとの指摘を受けました。
調べたところ、以下の表のように、パソコン版のFirefoxでは、MFENCEDタグが対応していないことが分かりました。

<mfenced open="|" close="|">
PCsSmart Phones
PC FirefoxMac OS SafariAndroid FirefoxiOS Safari
NGOKOKOK

このため、パソコンのFirefoxで、行列や行列式を正しく表示する方法を、以下のようにまとめました。
なお、Firefoxの仕様は変わることが考えられますので、ご注意ください。

Equations
BrowsersMathMLHTML
Matrix
PC
Firefox
( 23 45 )
<math>
<mfenced>
<mrow>
<mo>(</mo>
<mtable>
<mtr><mtd><mi>2</mi></mtd>
	<mtd><mi>3</mi></mtd></mtr>
<mtr><mtd><mi>4</mi></mtd>
	<mtd><mi>5</mi></mtd></mtr>
</mtable>
<mo>)</mo>
</mrow>
</mfenced>
</math>
Android
Firefox
and
Safari
23 45
<math>
<mfenced>
<mrow>
<mtable>
<mtr><mtd><mi>2</mi></mtd>
	<mtd><mi>3</mi></mtd></mtr>
<mtr><mtd><mi>4</mi></mtd>
	<mtd><mi>5</mi></mtd></mtr>
</mtable>
</mrow>
</mfenced>
</math>
Firefox
and
Safari
( 23 45 )
<math>
<mrow>
<mo>(</mo>
<mtable>
<mtr><mtd><mi>2</mi></mtd>
	<mtd><mi>3</mi></mtd></mtr>
<mtr><mtd><mi>4</mi></mtd>
	<mtd><mi>5</mi></mtd></mtr>
</mtable>
<mo>)</mo>
</mrow>
</math>
Determinant

PC
Firefox
| ab cd |
<math>
<mfenced>
<mrow>
<mo>|</mo>
<mtable>
<mtr><mtd><mi>a</mi></mtd>
	<mi>b</mi></mtd><mtd></mtr>
<mtr><mtd><mi>c</mi></mtd>
	<mtd><mi>d</mi></mtd></mtr>
</mtable>
<mo>|</mo>
</mrow>
</mfenced>
</math>
Android
Firefox
and
Safari
ab cd
<math>
<mfenced open="|" close="|">
<mtable>
<mtr><mtd><mi>a</mi></mtd>
	<mtd><mi>b</mi></mtd></mtr>
<mtr><mtd><mi>c</mi></mtd>
	<mtd><mi>d</mi></mtd></mtr>
</mtable>
</mfenced>
</math>
Firefox
and
Safari
| ab cd |
<math>
<mrow>
<mo>|</mo>
<mtable>
<mtr><mtd><mi>a</mi></mtd>;
	<mi>b</mi></mtd><mtd></mtr>
<mtr><mtd><mi>c</mi></mtd>
	<mi>d</mi></mtd><mtd></mtr>
</mtable>
<mo>|</mo>
</mrow>
</math>

Links / リンク

  1. MathML Element Reference (Nov., 2019) in English
  2. MathML 要素リファレンス (Mar., 2019) in Japanese

  3. MathML Attribute Reference (Nov., 2019) in English
  4. MathML属性リファレンス (Mar., 2019) in Japanese

  5. <mfecnced> Element (Jan., 2020) in English
  6. <mfecnced>要素 (Nov., 2019) in Japanese


Java SE Development Kit 10 Downloads

by e-Manabix


Posted on 2018年4月30日 (月) in Technology


2018年4月に、Java SE Development Kit 10 (SDK 10) が公開され、以下のURLからダウンロード (download)できます。

https://www.oracle.com/technetwork/java/javase/downloads/jdk10-downloads-4416644.html

なお、Java SE SDK 9の配布は、SDK10の配布に伴って、中止となりました。
また、2018年9月からは、Java SE SDK 11の配布となり、無償版のOpen SDKと有償版のOracle SDKの配布となるそうです。

(注)Java SE SDK11は以下からのダウンロードになります。
https://www.oracle.com/technetwork/java/javase/downloads/index.html

CentOS 7において、yum を用いたJava SE SDK 9 の削除 (remove)とJava SE SDK 10 のインストール (install)は、以下の手順で実施できます。

# yum  list  installed | grep  jdk
jdk-9.0.4.x86_64
                  
# yum  remove  jdk

# yum  localinstall  jdk-10.0.1_linux-x64_bin.rpm

# java  -version
java version "10.0.1" 2018-04-17


Apache Roller Blog

by e-Manabix


Posted on 2018年4月17日 (火) in Technology


このブログのために、CentOS7に、Apache Roller 5.2 をインストールしました。

ドキュメント(roller-install-guide.odt)があるので、簡単にインストールできるだろうと考えていたのですが、ライブラリのバージョン間の不整合で、考えていた以上に時間がかかったので整理しました。

  1. ダウンロード / Downloads
    注意:JavaSE9にはJavaMail1.6.2に合わせる必要があります。

    ItemsVersionsRemarks
    OS CentOS7
    Java SE 9.0.4 Jan. 16, 2018
    JavaMail 1.6.2 Feb. 12, 2018 for Java SE 9
    JavaBeans Activation Framework(JAF) 1.1.1
    Database PostgreSQL 10.3
    JDBC Driver 42.2.1 Jan. 25, 2018
    Apache Tomcat 9.0
    Apache Roller 5.2 Nov. 6, 2017

  2. インストール / install
    $ sudo su
    # wget https://www.apache.org/dist/roller/roller-5.2/v5.2.0/roller-release-5.2.0-standard.tar.gz 
    # gunzip  roller-release-5.2.0-standard.tar.gz
    # tar xvf roller-release-5.2.0-standard.tar
    # mv webapps/roller.war /opt/tomcat/webapps/roller/roller.zip
    # unzip /opt/tomcat/webapps/roller/roller.zip
    # useradd scott
    # passwd scott
    # su postgres
    $ psql
    => CREATE USER scott login createdb;
    => CREATE DATABASE roller OWNER scott;
    => ¥q
    $ exit
    # su scott
    $ psql roller
    roller=> ¥i /opt/tomcat/webapps/roller/WEB-INF/classes/dbscripts/postgresql/createdb.sql
    roller=> SELECT * FROM rag_planet;
    roller=> ALTER USER scott WITH PASSWORD 'tiger';
    roller=> ¥q
    $ exit
    # exit
    

  3. ファイル構造 / File Structure
    /
    ├── opt/
    │     └── rollerdata/
    │           ├── mediafiles/
    │           ├── searchindex/
    │           └── uploads/
    ├── tomcat/
    │     ├── bin/
    │     ├──  conf/
    │     │    └── context.xml
    │     ├── lib/
    │     │   ├── activation.jar
    │     │   ├── javax.mail.jar
    │     │   └── postgresql-42.2.1.jar
    │     └── webapps/
    │            ├── ROOT/
    │            │       └── dbtest.jsp
    │            └── roller/
    │                   ├── META-INF/
    │                   │   └── context.xml-example
    │                   └── WEB-INF/
    │                         ├── classes/
    │                         │   ├── dbscripts/
    │                         │   │   └── sql/
    │                         │   │         └── createdb.sql
    │                         │   └── roller-custom.properties
    │                         └── lib/
    │                                └── ?
    └── var/
           └── log/
                  └── tomcat/
                         ├── catalina.2018-04-01.log
                         ├── catalina.out
                         ├── localhost_access_log.2018-04-01.txt
                         └── roller.log
    
    Rollerが正しく動作しない原因は、catalina.2018-04-01.log または catalina.out のログに書かれています。

  4. roller.war
    roller-release-5.2.0-standard.tar
    .
    ├── roller-release-5.2.0
        ├── LICENSE.txt
        ├── NOTICE.txt
        ├── README.md
        ├── docs
        │   ├── roller-install-guide.odt
        │   ├── roller-template-guide.odt
        │   └── roller-user-guide.odt
        └── webapp
               └── roller.war
    

  5. roller-custom.properties
    installation.type=manual
    database.configurationType=jndi
    database.jndi.name=java:comp/env/jdbc/rollerdb
    mediafiles.storage.dir=/opt/rollerdata/mediafiles
    mediafile.resource.url=/resources
    uploads.dir=/opt/rollerdata/uploads
    search.index.dir=/opt/rollerdata/searchindex
    log4j.appender.roller.File=/var/log/tomcat/roller.log
    mail.configurationType=jndi
    mail.jndi.name=mail/Session
    mail.hostname=mydomain.com
    mail.username=scott
    

  6. context.xml
         <resource name="jdbc/rollerdb" auth="container"
                  type="javax.sql.datasource"
                  driverclassname="org.postgresql.driver"
                  url="jdbc:postgresql://localhost:5432/roller"
                  username="scott"
                  password="tiger"
                  maxactive="20"
                  maxidle="3"
                  removeabandoned="true"
                  maxwait="3000" />
    
このブログの作成には、HTMLタグ変換ツールを用いています。