NanoPi R2S+OpenWRT 21.02.0でBIGLOBEのMAP-E接続


5月に「NanoPi R2S+openWRT 21.02.0RCでBIGLOBEのMAP-E接続」にてOpenWRT 21.02.0-RC版での手順を作成した。

しかし、OpenWRT 21.02.0リリース版になってみると、いろいろ設定画面が変更となり、この手順のままでは動作させることができなかった。

ぐぐってみたところ「OpenWrt(21.02)でIPv6インターネットを使う」に手順があったので、参考にしつつ手順を更新した。

前書き

OpenWRTルータを作成するにあたり、いろいろある選択肢からRockchip RK3328のNanoPi R2S と Rockchip RK3399のNanoPi R4S を候補にあげた。

Amazon日本の倉庫に在庫があるというのと、openWRTのページに「FriendlyARM NanoPi R2S」とデバイスに関する個別ページが作成されており、リリース版の提供がされていたので、NanoPi R2Sを買って設定を行った。

画像
画像

ちなみに置き換え対象となったGL-MV1000とのサイズ比較はこんな感じ

画像
画像

OpenWRT 21.02.0-RC版の時代はアップグレードしたら以前の設定を残しておくと起動しなくなるとか問題もありましたが、OpenWRT 21.02.0リリース版を書き込んだあと設定復旧で動作させることができました。

設定手順0: MicroSD作成

friendlyarm_nanopi-r2s-squashfs-sysupgrade.img.gz を展開したものをmicroSDに書き込んでNanoPi R2Sを起動。

設定手順1:パッケージの追加

mapパッケージと日本語UIパッケージ(luci-i18n-base-ja)をインストール

また、後述のニチバン対策を行う場合は iptables-mod-ipopt もインストールする。

GUIの場合、[システム]-[Software]にて、「Update lists」を実行してパッケージ一覧を取得した後に、「Filter」にパッケージ名を入れて、出てきたモジュールを「Install」する。

CLIでインストールする場合は以下を実行

# opkg update
# opkg install luci-i18n-base-ja
# opkg install map
# okpg install iptables-mod-ipopt

インストール後は再起動を行うこと。

再起動しないとluciのネットワーク設定で「プロトコル:MAP / LW4over6」が選択肢に現れません。

設定手順2:WAN6インタフェースの作成

WAN6インタフェースがなければ「プロトコル: DHCPv6クライアント」で作成する

最初はそのまま設定して、有効化し、WAN6インタフェースに割り当てられるIPv6アドレスを確認すること。

↑の画像は使い回しなので、この段階では無いはずの「MAP」インタフェースなどが入ってます

上記のようにWAN6インタフェースに「IPv6」アドレスが確認できたら、そのアドレスをコピーして、notepadにでも貼り付けておきます。

設定手順3:WAN6インタフェースにDHCPv6関連設定

openWRT 21.02.0のリリース版になったらWAN6インタフェースではDHCPv6関連設定がGUIできるようになりました。

[DHCPサーバー]を選択して、下記のようになっている場合は「DHCPサーバーをセットアップ」をクリックします。

クリックしたあと[一般設定]タブは下記のような感じで変更せず

[IPv6設定]タブで下記の設定を行います。

Designated master: チェックを入れる
RA-Service:リレーモード
DHCPv6-サービス: リレーモード
NDP-Proxy: リレーモード
(Learn routesは設定を変更していない)

設定手順4:LANインタフェースにDHCPv6関連設定

LANインタフェースの[DHCPサーバー]-[IPv6設定]で以下の設定を行います。

RA-Service:リレーモード
DHCPv6-サービス: サーバーモード
NDP-Proxy: リレーモード

(マスターにチェックは入れません)

設定手順5: IPv6 PD設定

OpenWRT 21.02.0-RC版だとIPv6 PD設定がWAN6にあったのですが、リリース版だと消えています。

これは別のインタフェースとして作成することで対応するようです。

[インタフェースを新規作成]から下記でインタフェースを作成します。

名前:WAN6PD
プロトコル:静的アドレス
デバイス: WAN6インタフェース(@wan6表記)

詳細設定では手順2で確認したIPv6アドレスを使います。

IPv6アドレスが「IPv6: wwww:xxxx:yyyy:zzzz:aaaa:bbbb:cccc:dddd/64」というようになっているとき、先頭の4カラム「wwww:xxxx:yyyy:zzzz」を使います。

まず、WAN6PDに割り当てる 「wwww:xxxx:yyyy:zzzz::1001」を「IPv6アドレス」に設定します。

「IPv6 ゲートウェイ」には「wwww:xxxx:yyyy:zzzz::1 」を指定します。このアドレスは設定完了後、WAN6PDインタフェースではなく、LANインタフェースに対して割り当てられます。

「IPv6ルートプレフィックス」には「wwww:xxxx:yyyy:zzzz::/56」と指定します。

設定すると上記のような感じです。

設定手順6: MAP-E接続設定

インタフェースの新規作成で「プロトコル:MAP / LW4over6」を作成して、必要な値を入れていきます。今回は「WAN_MAP」で作成しました。

[一般設定]では下記の様にしました。

プロトコル:MAP/LW4over6
タイプ:MAP-E
以後は環境に合わせた値

[詳細設定]では「従来のMAPを使用」にチェックを入れる

設定手順7: 各インタフェースのファイアウォールゾーン設定

wan系のゾーンに「wan_map」と「WAN6PD」を追加します。

設定完了

ひとまずこれで設定完了です。

うまく接続が始まらない場合は、再起動してみてください。

設定:ニチバン対策

ニチバンサイトなど一部でIPv4通信がおかしくなる件について、 https://paste.teknik.io/VeN9r にある手法を使った。

IP4,PSID, TUNDEVは自分の環境に合わせて変更すること
IP4, PSIDがわからない場合は http://ipv4.web.fc2.com/map-e.html で確認すること

TUNDEVは、GUIから設定した名前ではなく、アイコンの下に小さく書かれている方の名前を使う。↑の場合は「map-wan_map」になる。

また、units1とunits2は、BIGLOBEはV6plus相当であるため、数値を変更する。

units1=15 #V6plus:15 OCN:63
units2=4096 #V6plus 4096 OCN:1024
IP4='xxx.xxx.xxx.xxx'
PSID='x'
TUNDEV='map-wan_map'


iptables -t nat -F PREROUTING
iptables -t nat -F OUTPUT
iptables -t nat -F POSTROUTING

rule=1
while [ $rule -le $units1  ] ; do
  mark=`expr $rule + 16`
  pn=`expr $rule - 1`
  portl=`expr $rule \* $units2 + $PSID \* 16`
  portr=`expr $portl + 15`

  iptables -t nat -A PREROUTING -m statistic --mode nth --every $units1 --packet $pn -j MARK --set-mark $mark
  iptables -t nat -A OUTPUT -m statistic --mode nth --every $units1 --packet $pn -j MARK --set-mark $mark

  iptables -t nat -A POSTROUTING -p icmp -o $TUNDEV -m mark --mark $mark -j SNAT --to $IP4:$portl-$portr
  iptables -t nat -A POSTROUTING -p tcp -o $TUNDEV -m mark --mark $mark -j SNAT --to $IP4:$portl-$portr
  iptables -t nat -A POSTROUTING -p udp -o $TUNDEV -m mark --mark $mark -j SNAT --to $IP4:$portl-$portr
  rule=`expr $rule + 1`
done

上記をopenwrtの[ネットワーク]-[ファイヤーウォール]-[Custom Rules] (/etc/firewall.user) に記載する。

また、[システム]-[スタートアップ]-[ローカルスタートアップ] (/etc/rc.local)の exit 0よりも前に下記2行を追加する

sleep 30
sh /etc/firewall.user

なお、iptablesのstatisticモジュールはiptables-mod-ipoptに入っているが、標準では導入されていないため、冒頭でインストールしているが、まだの場合は下記のような感じでインストールする。

root@nanopi:~# opkg install iptables-mod-ipopt
Installing iptables-mod-ipopt (1.8.7-1) to root...
Downloading https://downloads.openwrt.org/releases/21.02.0-rc1/targets/rockchip/armv8/packages/iptables-mod-ipopt_1.8.7-1_aarch64_generic.ipk
Installing kmod-ipt-ipopt (5.4.111-1) to root...
Downloading https://downloads.openwrt.org/releases/21.02.0-rc1/targets/rockchip/armv8/packages/kmod-ipt-ipopt_5.4.111-1_aarch64_generic.ipk
Configuring kmod-ipt-ipopt.
Configuring iptables-mod-ipopt.
root@nanopi:~#

これで、とりあえずニチバンもスムースに開けるようになった。


参考資料

/etc/config/network

config interface 'loopback'
        option device 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option ula_prefix 'fdaf:6014:6f21::/48'

config device
        option name 'br-lan'
        option type 'bridge'
        list ports 'eth1'

config device
        option name 'eth1'
        option macaddr '1a:e4:a4:73:0d:0c'

config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        option netmask '255.255.255.0'
        option ip6assign '60'
        option ipaddr '192.168.1.1'

config device
        option name 'eth0'
        option macaddr '1a:e4:a4:73:0d:0b'

config interface 'wan'
        option device 'eth0'
        option proto 'dhcp'
        option auto '0'

config interface 'wan6'
        option device 'eth0'
        option proto 'dhcpv6'
        option reqaddress 'try'
        option reqprefix 'auto'

config interface 'wan_map'
        option proto 'map'
        option maptype 'map-e'
        option peeraddr '2404:9200:225:100::64'
        option ipaddr 'xxx.xxx.xxx.xxx'
        option ip4prefixlen '15'
        option ip6prefix 'wwww:xxxx::'
        option ip6prefixlen '31'
        option ealen '25'
        option psidlen '8'
        option offset '4'
        option legacymap '1'

config interface 'WAN6PD'
        option proto 'static'
        list ip6addr 'wwww:xxxx:yyyy:zzzz::1001'
        option ip6gw 'wwww:xxxx:yyyy:zzzz::1'
        option ip6prefix 'wwww:xxxx:yyyy:zzzz::/56'
        option device '@wan6'

/etc/config/dhcp

config dnsmasq
        option domainneeded '1'
        option boguspriv '1'
        option filterwin2k '0'
        option localise_queries '1'
        option rebind_protection '1'
        option rebind_localhost '1'
        option local '/lan/'
        option domain 'lan'
        option expandhosts '1'
        option nonegcache '0'
        option authoritative '1'
        option readethers '1'
        option leasefile '/tmp/dhcp.leases'
        option resolvfile '/tmp/resolv.conf.d/resolv.conf.auto'
        option nonwildcard '1'
        option localservice '1'
        option ednspacket_max '1232'

config dhcp 'lan'
        option interface 'lan'
        option start '100'
        option limit '150'
        option leasetime '12h'
        option dhcpv4 'server'
        option ra 'relay'
        option ndp 'relay'
        list ra_flags 'none'
        option dhcpv6 'server'

config dhcp 'wan6'
        option dhcpv6 'relay'
        option ra 'relay'
        option ndp 'relay'
        option master '1'
        option interface 'wan6'
        option ignore '1'
        list ra_flags 'none'

iptablesの結果

意図した分散が行われているかを「iptables -t nat -L -v」のPOSTROUTING tcp/udpのpkts/bytesカウントが分散して増加していっているかを確認する。

ちなみに、 /etc/rc.local にsleep 30とsh /etc/firewall.user を入れないと、システムが生成した分散ルールも残って表示される。

root@nanopi:~# iptables -t nat -L -v
Chain PREROUTING (policy ACCEPT 2756 packets, 474K bytes)
 pkts bytes target     prot opt in     out     source               destination
  185 32012 MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 MARK set 0x11
  184 28575 MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 1 MARK set 0x12
  184 31952 MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 2 MARK set 0x13
  184 31323 MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 3 MARK set 0x14
  184 33123 MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 4 MARK set 0x15
  184 36047 MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 5 MARK set 0x16
  184 32939 MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 6 MARK set 0x17
  184 33412 MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 7 MARK set 0x18
  184 29916 MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 8 MARK set 0x19
  184 28526 MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 9 MARK set 0x1a
  184 29308 MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 10 MARK set 0x1b
  183 32364 MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 11 MARK set 0x1c
  183 30150 MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 12 MARK set 0x1d
  183 29944 MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 13 MARK set 0x1e
  183 34100 MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 14 MARK set 0x1f

Chain INPUT (policy ACCEPT 598 packets, 40818 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 67 packets, 5056 bytes)
 pkts bytes target     prot opt in     out     source               destination
    5   372 MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 MARK set 0x11
    5   372 MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 1 MARK set 0x12
    5   372 MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 2 MARK set 0x13
    5   372 MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 3 MARK set 0x14
    5   380 MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 4 MARK set 0x15
    5   380 MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 5 MARK set 0x16
    5   380 MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 6 MARK set 0x17
    4   300 MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 7 MARK set 0x18
    4   304 MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 8 MARK set 0x19
    4   304 MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 9 MARK set 0x1a
    4   304 MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 10 MARK set 0x1b
    4   304 MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 11 MARK set 0x1c
    4   304 MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 12 MARK set 0x1d
    4   304 MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 13 MARK set 0x1e
    4   304 MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 14 MARK set 0x1f

Chain POSTROUTING (policy ACCEPT 23 packets, 1064 bytes)
 pkts bytes target     prot opt in     out     source               destination
    2   168 SNAT       icmp --  any    map-wan_map  anywhere             anywhere             mark match 0x11 to:xxx.xxx.xxx.xxx:5856-5871
   41  2607 SNAT       tcp  --  any    map-wan_map  anywhere             anywhere             mark match 0x11 to:xxx.xxx.xxx.xxx:5856-5871
    8   557 SNAT       udp  --  any    map-wan_map  anywhere             anywhere             mark match 0x11 to:xxx.xxx.xxx.xxx:5856-5871
    4   336 SNAT       icmp --  any    map-wan_map  anywhere             anywhere             mark match 0x12 to:xxx.xxx.xxx.xxx:9952-9967
   50  3503 SNAT       tcp  --  any    map-wan_map  anywhere             anywhere             mark match 0x12 to:xxx.xxx.xxx.xxx:9952-9967
   13   868 SNAT       udp  --  any    map-wan_map  anywhere             anywhere             mark match 0x12 to:xxx.xxx.xxx.xxx:9952-9967
    0     0 SNAT       icmp --  any    map-wan_map  anywhere             anywhere             mark match 0x13 to:xxx.xxx.xxx.xxx:14048-14063
   46  2981 SNAT       tcp  --  any    map-wan_map  anywhere             anywhere             mark match 0x13 to:xxx.xxx.xxx.xxx:14048-14063
   11   771 SNAT       udp  --  any    map-wan_map  anywhere             anywhere             mark match 0x13 to:xxx.xxx.xxx.xxx:14048-14063
    0     0 SNAT       icmp --  any    map-wan_map  anywhere             anywhere             mark match 0x14 to:xxx.xxx.xxx.xxx:18144-18159
   33  1991 SNAT       tcp  --  any    map-wan_map  anywhere             anywhere             mark match 0x14 to:xxx.xxx.xxx.xxx:18144-18159
   10   709 SNAT       udp  --  any    map-wan_map  anywhere             anywhere             mark match 0x14 to:xxx.xxx.xxx.xxx:18144-18159
    2   168 SNAT       icmp --  any    map-wan_map  anywhere             anywhere             mark match 0x15 to:xxx.xxx.xxx.xxx:22240-22255
   38  2280 SNAT       tcp  --  any    map-wan_map  anywhere             anywhere             mark match 0x15 to:xxx.xxx.xxx.xxx:22240-22255
   13   950 SNAT       udp  --  any    map-wan_map  anywhere             anywhere             mark match 0x15 to:xxx.xxx.xxx.xxx:22240-22255
    0     0 SNAT       icmp --  any    map-wan_map  anywhere             anywhere             mark match 0x16 to:xxx.xxx.xxx.xxx:26336-26351
   42  3095 SNAT       tcp  --  any    map-wan_map  anywhere             anywhere             mark match 0x16 to:xxx.xxx.xxx.xxx:26336-26351
   11   831 SNAT       udp  --  any    map-wan_map  anywhere             anywhere             mark match 0x16 to:xxx.xxx.xxx.xxx:26336-26351
    0     0 SNAT       icmp --  any    map-wan_map  anywhere             anywhere             mark match 0x17 to:xxx.xxx.xxx.xxx:30432-30447
   51  3838 SNAT       tcp  --  any    map-wan_map  anywhere             anywhere             mark match 0x17 to:xxx.xxx.xxx.xxx:30432-30447
   11   823 SNAT       udp  --  any    map-wan_map  anywhere             anywhere             mark match 0x17 to:xxx.xxx.xxx.xxx:30432-30447
    1    84 SNAT       icmp --  any    map-wan_map  anywhere             anywhere             mark match 0x18 to:xxx.xxx.xxx.xxx:34528-34543
   41  2564 SNAT       tcp  --  any    map-wan_map  anywhere             anywhere             mark match 0x18 to:xxx.xxx.xxx.xxx:34528-34543
    9   656 SNAT       udp  --  any    map-wan_map  anywhere             anywhere             mark match 0x18 to:xxx.xxx.xxx.xxx:34528-34543
    0     0 SNAT       icmp --  any    map-wan_map  anywhere             anywhere             mark match 0x19 to:xxx.xxx.xxx.xxx:38624-38639
   44  2665 SNAT       tcp  --  any    map-wan_map  anywhere             anywhere             mark match 0x19 to:xxx.xxx.xxx.xxx:38624-38639
    9   629 SNAT       udp  --  any    map-wan_map  anywhere             anywhere             mark match 0x19 to:xxx.xxx.xxx.xxx:38624-38639
    0     0 SNAT       icmp --  any    map-wan_map  anywhere             anywhere             mark match 0x1a to:xxx.xxx.xxx.xxx:42720-42735
   55  3841 SNAT       tcp  --  any    map-wan_map  anywhere             anywhere             mark match 0x1a to:xxx.xxx.xxx.xxx:42720-42735
   11   762 SNAT       udp  --  any    map-wan_map  anywhere             anywhere             mark match 0x1a to:xxx.xxx.xxx.xxx:42720-42735
    1    84 SNAT       icmp --  any    map-wan_map  anywhere             anywhere             mark match 0x1b to:xxx.xxx.xxx.xxx:46816-46831
   53  3161 SNAT       tcp  --  any    map-wan_map  anywhere             anywhere             mark match 0x1b to:xxx.xxx.xxx.xxx:46816-46831
   10   699 SNAT       udp  --  any    map-wan_map  anywhere             anywhere             mark match 0x1b to:xxx.xxx.xxx.xxx:46816-46831
    2   168 SNAT       icmp --  any    map-wan_map  anywhere             anywhere             mark match 0x1c to:xxx.xxx.xxx.xxx:50912-50927
   46  2965 SNAT       tcp  --  any    map-wan_map  anywhere             anywhere             mark match 0x1c to:xxx.xxx.xxx.xxx:50912-50927
    9   632 SNAT       udp  --  any    map-wan_map  anywhere             anywhere             mark match 0x1c to:xxx.xxx.xxx.xxx:50912-50927
    1    84 SNAT       icmp --  any    map-wan_map  anywhere             anywhere             mark match 0x1d to:xxx.xxx.xxx.xxx:55008-55023
   45  2700 SNAT       tcp  --  any    map-wan_map  anywhere             anywhere             mark match 0x1d to:xxx.xxx.xxx.xxx:55008-55023
   10   671 SNAT       udp  --  any    map-wan_map  anywhere             anywhere             mark match 0x1d to:xxx.xxx.xxx.xxx:55008-55023
    1    84 SNAT       icmp --  any    map-wan_map  anywhere             anywhere             mark match 0x1e to:xxx.xxx.xxx.xxx:59104-59119
   48  2992 SNAT       tcp  --  any    map-wan_map  anywhere             anywhere             mark match 0x1e to:xxx.xxx.xxx.xxx:59104-59119
   15  1003 SNAT       udp  --  any    map-wan_map  anywhere             anywhere             mark match 0x1e to:xxx.xxx.xxx.xxx:59104-59119
    1    84 SNAT       icmp --  any    map-wan_map  anywhere             anywhere             mark match 0x1f to:xxx.xxx.xxx.xxx:63200-63215
   38  2280 SNAT       tcp  --  any    map-wan_map  anywhere             anywhere             mark match 0x1f to:xxx.xxx.xxx.xxx:63200-63215
    9   615 SNAT       udp  --  any    map-wan_map  anywhere             anywhere             mark match 0x1f to:xxx.xxx.xxx.xxx:63200-63215

Chain postrouting_lan_rule (1 references)
 pkts bytes target     prot opt in     out     source               destination

Chain postrouting_rule (0 references)
 pkts bytes target     prot opt in     out     source               destination

Chain postrouting_wan_rule (1 references)
 pkts bytes target     prot opt in     out     source               destination

Chain prerouting_lan_rule (1 references)
 pkts bytes target     prot opt in     out     source               destination

Chain prerouting_rule (0 references)
 pkts bytes target     prot opt in     out     source               destination

Chain prerouting_wan_rule (1 references)
 pkts bytes target     prot opt in     out     source               destination

Chain zone_lan_postrouting (0 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 postrouting_lan_rule  all  --  any    any     anywhere             anywhere             /* !fw3: Custom lan postrouting rule chain */

Chain zone_lan_prerouting (0 references)
 pkts bytes target     prot opt in     out     source               destination
  389 44358 prerouting_lan_rule  all  --  any    any     anywhere             anywhere             /* !fw3: Custom lan prerouting rule chain */

Chain zone_wan_postrouting (0 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 postrouting_wan_rule  all  --  any    any     anywhere             anywhere             /* !fw3: Custom wan postrouting rule chain */
    0     0 MASQUERADE  all  --  any    any     anywhere             anywhere             /* !fw3 */

Chain zone_wan_prerouting (0 references)
 pkts bytes target     prot opt in     out     source               destination
    6   786 prerouting_wan_rule  all  --  any    any     anywhere             anywhere             /* !fw3: Custom wan prerouting rule chain */
root@nanopi:~#

2021/09/22追記: 8日間稼働した後の状態

root@nanopi:~# iptables -t nat -L -v
Chain PREROUTING (policy ACCEPT 1434K packets, 285M bytes)
 pkts bytes target     prot opt in     out     source               destination
95575   19M MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 MARK set 0x11
95574   19M MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 1 MARK set 0x12
95574   19M MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 2 MARK set 0x13
95574   19M MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 3 MARK set 0x14
95574   19M MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 4 MARK set 0x15
95574   19M MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 5 MARK set 0x16
95574   19M MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 6 MARK set 0x17
95573   19M MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 7 MARK set 0x18
95573   19M MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 8 MARK set 0x19
95573   19M MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 9 MARK set 0x1a
95573   19M MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 10 MARK set 0x1b
95573   19M MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 11 MARK set 0x1c
95573   19M MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 12 MARK set 0x1d
95573   19M MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 13 MARK set 0x1e
95573   19M MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 14 MARK set 0x1f

Chain INPUT (policy ACCEPT 231K packets, 17M bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 1399 packets, 222K bytes)
 pkts bytes target     prot opt in     out     source               destination
   94 15373 MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 MARK set 0x11
   94 16668 MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 1 MARK set 0x12
   94 13812 MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 2 MARK set 0x13
   94 14151 MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 3 MARK set 0x14
   93 14819 MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 4 MARK set 0x15
   93 13431 MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 5 MARK set 0x16
   93 15387 MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 6 MARK set 0x17
   93 14528 MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 7 MARK set 0x18
   93 15124 MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 8 MARK set 0x19
   93 16367 MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 9 MARK set 0x1a
   93 14850 MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 10 MARK set 0x1b
   93 14763 MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 11 MARK set 0x1c
   93 14121 MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 12 MARK set 0x1d
   93 13029 MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 13 MARK set 0x1e
   93 15394 MARK       all  --  any    any     anywhere             anywhere             statistic mode nth every 15 packet 14 MARK set 0x1f

Chain POSTROUTING (policy ACCEPT 1289 packets, 186K bytes)
 pkts bytes target     prot opt in     out     source               destination
  772 64680 SNAT       icmp --  any    map-wan_map  anywhere             anywhere             mark match 0x11 to:xxx.xxx.xxx.xxx:5856-5871
14703  948K SNAT       tcp  --  any    map-wan_map  anywhere             anywhere             mark match 0x11 to:xxx.xxx.xxx.xxx:5856-5871
 3753  257K SNAT       udp  --  any    map-wan_map  anywhere             anywhere             mark match 0x11 to:xxx.xxx.xxx.xxx:5856-5871
  837 70140 SNAT       icmp --  any    map-wan_map  anywhere             anywhere             mark match 0x12 to:xxx.xxx.xxx.xxx:9952-9967
14623  945K SNAT       tcp  --  any    map-wan_map  anywhere             anywhere             mark match 0x12 to:xxx.xxx.xxx.xxx:9952-9967
 3628  254K SNAT       udp  --  any    map-wan_map  anywhere             anywhere             mark match 0x12 to:xxx.xxx.xxx.xxx:9952-9967
  806 67536 SNAT       icmp --  any    map-wan_map  anywhere             anywhere             mark match 0x13 to:xxx.xxx.xxx.xxx:14048-14063
14690  930K SNAT       tcp  --  any    map-wan_map  anywhere             anywhere             mark match 0x13 to:xxx.xxx.xxx.xxx:14048-14063
 3705  257K SNAT       udp  --  any    map-wan_map  anywhere             anywhere             mark match 0x13 to:xxx.xxx.xxx.xxx:14048-14063
  853 71540 SNAT       icmp --  any    map-wan_map  anywhere             anywhere             mark match 0x14 to:xxx.xxx.xxx.xxx:18144-18159
14620  936K SNAT       tcp  --  any    map-wan_map  anywhere             anywhere             mark match 0x14 to:xxx.xxx.xxx.xxx:18144-18159
 3696  255K SNAT       udp  --  any    map-wan_map  anywhere             anywhere             mark match 0x14 to:xxx.xxx.xxx.xxx:18144-18159
  802 67088 SNAT       icmp --  any    map-wan_map  anywhere             anywhere             mark match 0x15 to:xxx.xxx.xxx.xxx:22240-22255
14833  942K SNAT       tcp  --  any    map-wan_map  anywhere             anywhere             mark match 0x15 to:xxx.xxx.xxx.xxx:22240-22255
 3723  256K SNAT       udp  --  any    map-wan_map  anywhere             anywhere             mark match 0x15 to:xxx.xxx.xxx.xxx:22240-22255
  834 69944 SNAT       icmp --  any    map-wan_map  anywhere             anywhere             mark match 0x16 to:xxx.xxx.xxx.xxx:26336-26351
14759  930K SNAT       tcp  --  any    map-wan_map  anywhere             anywhere             mark match 0x16 to:xxx.xxx.xxx.xxx:26336-26351
 3689  258K SNAT       udp  --  any    map-wan_map  anywhere             anywhere             mark match 0x16 to:xxx.xxx.xxx.xxx:26336-26351
  804 67480 SNAT       icmp --  any    map-wan_map  anywhere             anywhere             mark match 0x17 to:xxx.xxx.xxx.xxx:30432-30447
14874  946K SNAT       tcp  --  any    map-wan_map  anywhere             anywhere             mark match 0x17 to:xxx.xxx.xxx.xxx:30432-30447
 3746  261K SNAT       udp  --  any    map-wan_map  anywhere             anywhere             mark match 0x17 to:xxx.xxx.xxx.xxx:30432-30447
  868 72800 SNAT       icmp --  any    map-wan_map  anywhere             anywhere             mark match 0x18 to:xxx.xxx.xxx.xxx:34528-34543
14703  937K SNAT       tcp  --  any    map-wan_map  anywhere             anywhere             mark match 0x18 to:xxx.xxx.xxx.xxx:34528-34543
 3698  254K SNAT       udp  --  any    map-wan_map  anywhere             anywhere             mark match 0x18 to:xxx.xxx.xxx.xxx:34528-34543
  843 70644 SNAT       icmp --  any    map-wan_map  anywhere             anywhere             mark match 0x19 to:xxx.xxx.xxx.xxx:38624-38639
14651  931K SNAT       tcp  --  any    map-wan_map  anywhere             anywhere             mark match 0x19 to:xxx.xxx.xxx.xxx:38624-38639
 3720  256K SNAT       udp  --  any    map-wan_map  anywhere             anywhere             mark match 0x19 to:xxx.xxx.xxx.xxx:38624-38639
  768 64288 SNAT       icmp --  any    map-wan_map  anywhere             anywhere             mark match 0x1a to:xxx.xxx.xxx.xxx:42720-42735
14731  942K SNAT       tcp  --  any    map-wan_map  anywhere             anywhere             mark match 0x1a to:xxx.xxx.xxx.xxx:42720-42735
 3689  251K SNAT       udp  --  any    map-wan_map  anywhere             anywhere             mark match 0x1a to:xxx.xxx.xxx.xxx:42720-42735
  839 70084 SNAT       icmp --  any    map-wan_map  anywhere             anywhere             mark match 0x1b to:xxx.xxx.xxx.xxx:46816-46831
14826  944K SNAT       tcp  --  any    map-wan_map  anywhere             anywhere             mark match 0x1b to:xxx.xxx.xxx.xxx:46816-46831
 3729  257K SNAT       udp  --  any    map-wan_map  anywhere             anywhere             mark match 0x1b to:xxx.xxx.xxx.xxx:46816-46831
  841 70420 SNAT       icmp --  any    map-wan_map  anywhere             anywhere             mark match 0x1c to:xxx.xxx.xxx.xxx:50912-50927
14751  939K SNAT       tcp  --  any    map-wan_map  anywhere             anywhere             mark match 0x1c to:xxx.xxx.xxx.xxx:50912-50927
 3697  252K SNAT       udp  --  any    map-wan_map  anywhere             anywhere             mark match 0x1c to:xxx.xxx.xxx.xxx:50912-50927
  783 65492 SNAT       icmp --  any    map-wan_map  anywhere             anywhere             mark match 0x1d to:xxx.xxx.xxx.xxx:55008-55023
14802  937K SNAT       tcp  --  any    map-wan_map  anywhere             anywhere             mark match 0x1d to:xxx.xxx.xxx.xxx:55008-55023
 3679  255K SNAT       udp  --  any    map-wan_map  anywhere             anywhere             mark match 0x1d to:xxx.xxx.xxx.xxx:55008-55023
  850 71288 SNAT       icmp --  any    map-wan_map  anywhere             anywhere             mark match 0x1e to:xxx.xxx.xxx.xxx:59104-59119
14824  942K SNAT       tcp  --  any    map-wan_map  anywhere             anywhere             mark match 0x1e to:xxx.xxx.xxx.xxx:59104-59119
 3622  246K SNAT       udp  --  any    map-wan_map  anywhere             anywhere             mark match 0x1e to:xxx.xxx.xxx.xxx:59104-59119
  870 72968 SNAT       icmp --  any    map-wan_map  anywhere             anywhere             mark match 0x1f to:xxx.xxx.xxx.xxx:63200-63215
14802  941K SNAT       tcp  --  any    map-wan_map  anywhere             anywhere             mark match 0x1f to:xxx.xxx.xxx.xxx:63200-63215
 3684  258K SNAT       udp  --  any    map-wan_map  anywhere             anywhere             mark match 0x1f to:xxx.xxx.xxx.xxx:63200-63215

Chain postrouting_lan_rule (1 references)
 pkts bytes target     prot opt in     out     source               destination

Chain postrouting_rule (0 references)
 pkts bytes target     prot opt in     out     source               destination

Chain postrouting_wan_rule (1 references)
 pkts bytes target     prot opt in     out     source               destination

Chain prerouting_lan_rule (1 references)
 pkts bytes target     prot opt in     out     source               destination

Chain prerouting_rule (0 references)
 pkts bytes target     prot opt in     out     source               destination

Chain prerouting_wan_rule (1 references)
 pkts bytes target     prot opt in     out     source               destination

Chain zone_lan_postrouting (0 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 postrouting_lan_rule  all  --  any    any     anywhere             anywhere             /* !fw3: Custom lan postrouting rule chain */

Chain zone_lan_prerouting (0 references)
 pkts bytes target     prot opt in     out     source               destination
  389 44358 prerouting_lan_rule  all  --  any    any     anywhere             anywhere             /* !fw3: Custom lan prerouting rule chain */

Chain zone_wan_postrouting (0 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 postrouting_wan_rule  all  --  any    any     anywhere             anywhere             /* !fw3: Custom wan postrouting rule chain */
    0     0 MASQUERADE  all  --  any    any     anywhere             anywhere             /* !fw3 */

Chain zone_wan_prerouting (0 references)
 pkts bytes target     prot opt in     out     source               destination
    6   786 prerouting_wan_rule  all  --  any    any     anywhere             anywhere             /* !fw3: Custom wan prerouting rule chain */
root@nanopi:~#

expectでスクリプトを作った時のメモ書き


ssh経由の操作をexpectコマンドで自動化しようとした時に、expectで調べると、入出力関連に関しては出てくるが、文字列操作や制御構文周りがよくわからない。

ここら辺は、tclに関して調べるとわかるようになっている。

参考にしたサイト

LInux JM Home Page「expect (1)
FreeSoftNet 「Tcl>文法とコマンド
アプリコット PukiWiki「expectで自動化

if文の書き方

他の言語と同じように「if (条件){実行内容}」と書くと妙なエラーになる。

expectでは「if {条件} {実行内容}」というように、どちらも「{}」で囲む。
また、「if」と「{」の間、「条件の}」と「実行内容の{」の間のそれぞれにスペースを挟む必要がある。

文字列を比較して、異なる場合は「diff」、同じであれば「same」と出力するexpectは下記の様になる。

#!/usr/bin/expect -f
set hostnamenew "testhostnew"
set hostnamenow "testhost"

puts "hostnamenew: $hostnamenew"
puts "hostnamenow: $hostnamenow"

if { "$hostnamenew" != "$hostnamenow" } {
        puts "diff"
} else {
        puts "same"
}

誤って「if (条件) {実行内容}」とした場合、下記の様な「unbalanced open paren in expression」というエラーとなる。

unbalanced open paren
in expression "("
    (parsing expression "(")
    invoked from within
"if ( "$hostnamenew" != "$hostnamenow" ) {
        puts "diff"
} else {
        puts "same"
}"

「if(条件) {実行内容}」と「if{条件} {実行内容}」とifと{の間にスペースを入れない場合は下記のような「invalid command name」となる

invalid command name "if("
    while executing
"if( "$hostnamenew" != "$hostnamenow" ){"
invalid command name "if{"
    while executing
"if{ "$hostnamenew" != "$hostnamenow" }{"

面倒くさいことに「if {条件}{実行内容}」と、ifと条件の間にはスペース入れたけど、条件と実行内容の間にスペースがない場合は下記の「extra characters after close-brace while executing」というエラーになる。

extra characters after close-brace
    while executing
"if { "$hostnamenew" != "$hostnamenow" }{"

コマンド出力から文字列を取り出しと文字列の切り出し

expectを使う場合は、sshで他のホストに接続してコマンドを実行する、という用途で使うことが多い。

コマンドの実行結果によって、処理を変えたい場合、どうすればいいのか?

「expect -indices -re “条件式”」で条件式に該当した行を$expect_out(数字,string)で拾うみたいなんだけど、いまいち動作がよくわからない。

「ip a s ens160」を実行して、そのIPアドレスを取得したい場合の例として以下を作った

expect "\[#$] "
send -- "ip a s ens160\r"
expect -indices -re "inet (.*)\r"
puts "===buffer==="
puts "$expect_out(buffer)"
puts "===str0==="
puts "$expect_out(0,string)"
puts "===str1==="
puts "$expect_out(1,string)"
puts "===="

これの実行結果は下記となった。

2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:33:27:f8 brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    inet 172.17.44.48/16 brd 172.17.255.255 scope global noprefixroute ens160
===buffer===
ip a s ens160
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:33:27:f8 brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    inet 172.17.44.48/16 brd 172.17.255.255 scope global noprefixroute ens160
===str0===
inet 172.17.44.48/16 brd 172.17.255.255 scope global noprefixroute ens160
===str1===
172.17.44.48/16 brd 172.17.255.255 scope global noprefixroute ens160
====
       valid_lft forever preferred_lft forever
    inet6 fe80::cca7:388a:36e7:d688/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

条件を「inet (.*)\r」から「inet6 (.*)\r」に変更

2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:33:27:f8 brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    inet 172.17.44.48/16 brd 172.17.255.255 scope global noprefixroute ens160
       valid_lft forever preferred_lft forever
    inet6 fe80::cca7:388a:36e7:d688/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
===buffer===
ip a s ens160
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:33:27:f8 brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    inet 172.17.44.48/16 brd 172.17.255.255 scope global noprefixroute ens160
       valid_lft forever preferred_lft forever
    inet6 fe80::cca7:388a:36e7:d688/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
===str0===
inet6 fe80::cca7:388a:36e7:d688/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
===str1===
fe80::cca7:388a:36e7:d688/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
====

ここからさらにIPアドレスの部分を取り出すには「string first ~」「string last ~」と「string range ~」を使って文字列を切り出す。

set str $expect_out(1,string)
set stred [string first "/" $str]
puts "[string range $str 0 $stred]"
set stred [expr $stred - 1]
puts "[string range $str 0 $stred]"

上記の実行結果としては下記のようになる。

172.17.44.48/
172.17.44.48

他の言語のsubstring系だと開始アドレスと、そこを起点に取り出す文字列の長さを指定するが、tclのstring range では、開始アドレスと終了アドレスの2つを指定する形になるので注意が必要になる。

リストファイルを順に処理する

サーバ名 IPアドレス ユーザ名 パスワードがかかれている一覧ファイルを読み込ませて順に処理させる例

まず、一覧ファイルの例

server1       172.17.44.51    admin   password123#
server2       172.17.44.52    admin   password123#

スクリプト

#!/usr/bin/expect -f

if { $argc < 1 } {
        puts "Usage: $argv0 <serverlist>"
        exit 1
}

set filename [lindex $argv 0]

set contents [read [open $filename]]
set contentline [split $contents "\n"]
foreach line $contentline {
        #puts "$line"
        set linesplit [split $line "\t"]
        set hostname [lindex $linesplit 0]
        set ipaddr [lindex $linesplit 1]
        set username [lindex $linesplit 2]
        set password [lindex $linesplit 3]
        if { $hostname != "" } {
                puts "hostname:$hostname, ipaddr:$ipaddr, username:$username, password:$password"
        }
}

実行例

$ ./sample3 serverlist
hostname:server1, ipaddr:172.17.44.51, username:admin, password:password123#
hostname:server2, ipaddr:172.17.44.52, username:admin, password:password123#
$

なお、処理スクリプトに「if { $hostname != “” } {」を入れているのは改行のみやEOFのみの行を処理してしまわないようにするため

とはいえ、これを応用してssh接続させるスクリプトにしたところ、間にアクセスできないホストがあると、そこでエラー終了してしまうので、取り扱いが面倒であることが判明。
(エラー時の処理を実装すればいいんだけど、面倒)

よって、bashスクリプト側でリストは処理し、そこからexpectスクリプトを呼び出すこととなった。

そうやって作成したのが「Cisco UCSのCIMCにssh接続して設定を行う」になる

ASUS VivoBook E203NAにWindows10とChromeOSを入れた


秋葉原のMLcomputerにいったら整理中の箱の中にASUSの薄いノートが入っていた。

電源ボタンおしてみたけど、電源は入らない、という状態だったけど、「これいくら?」と聞いて見た。

すると、「ASUS E203MA(あとで調べたらCPUがN4000とちょっとスペックが上)でキーボードが使えないジャンク品を3千円としている」ということだったので、3千円で購入した。

裏面みるとネジが1つなく、1つがセロテープで無理矢理とめられていた。

んー、と思いつつ電源ON

F2キーでBIOS/UEFI画面に入ることができた。

スペックを確認するとASUS VivoBook E203NA の下位モデルでCPU N3350、RAM 2GB、eMMC 32GBというものだった。

メインストレージが64GB未満なのは現状Windows10で使うにはキツイものでした。

Windows 10 21H1をインストールして一通りWindows Updateをかけるとデバイスは全て正常に認識しましたが、問題が・・・

そう、OSだけでほぼ全て使ってしまうのです。

あと、注意点として、Windows 10インストール直後のQualcomm Atheros QCA9377ドライバだとバッファローWSR-1800AX4の802.11ax Wi-Fi EasyMesh対応版に接続出来ないという不具合が・・・

Windows Updateを行って下記のv12.0.0.919にアップデートすると接続出来るようになります。

このほかWebブラウザでサイトを見たりしていたら空き容量が2GBを切っているという・・・

裏面のネジがおかしいのもあるので中を確認

増設の余地は全くない構造でした。

基板がどうなっているかは下記の動画をみてもらうと良さそうです。

なお、ネジがちゃんとついていなかったのは、ネジの長さが2種類あって、2本だけ長いものがあるんですが、その2本の使いどころを誤っていたせいでした。

正しくは下記の画像の赤丸の2箇所なんですが、分解した人は下側左右両サイドに使っていました。

さて、ストレージ増設なんてことはできそうにないので、ChromeOS+brunchで起動してみます。

まずはBIOSでSecurebootをdisableにかえてから、Boot ManagerからUSBメモリを選択して起動します。(電源ON後にいきなりBoot Managerを出す手法は分からなかった)

ChromeOSリカバリイメージはrammus、grubで設定するoptionsは「options=enable_updates,pwa」だけでいけるというなかなか素直な状態でした。

Ctrl+Alt+Tからshellを開いて「sudo chromeos-install -dst /dev/mmcblk0」で内蔵ストレージにChromeOSを書き込んで、本体のみでのChromeOS起動を確認しました。

興味深かったのは、いままでbrunchでrammusイメージを元にしてChrome OSで起動したノートパソコンでGoogleアカウントログインを行うと「お使いの Chome OSで~」というメールが来てたのですが、ASUS VivoBook E203NAにChromeOSを入れたやつでは「お使いの ASUS Chromebook Flip C434で~」と、機種名が書かれたメールになっていた。

ベースとしているrammusは「ASUS Chromebook C425, ASUS Chromebook Flip C433, ASUS Chromebook Flip C434」向けイメージなので、わからなくもないんですが

ASUS Chromebook Flip C434 はCore m3-8100Y/RAM 4GB/ストレージ 32GB/14.0インチ1920*1080/タッチパネルあり、とだいぶスペックが違うのになぁ・・・といった感じです。

Oralce Linux8上でHyper Estraier/QDBMがコアダンプし動作しない


RHEL8/CentOS8/Oralce Linux 8上で、Hyper Estraier および内部で使うQDBMをコンパイルしたところ、コアダンプが発生し、動作できなかった。

$ /usr/local/bin/estcmd gather -cl -il ja -sd casket3 ./draft
/usr/local/bin/estcmd: INFO: reading list from the directory: ./draft
/usr/local/bin/estcmd: ERROR: casket3: database problem
$

調べて見るとgcc7でQDBM 1.8.78をコンパイルすると発生する、とのこと

AmazonLinux2にgcc6をインストール(標準のgcc7と共存させる)

関連情報を探す

Debian Bug report logs – #853627 qdbm: ftbfs with GCC-7
gentoo linux package db qdbm

gentoo linuxのqdbmの内容をおっていくと「https://gitweb.gentoo.org/repo/gentoo.git/tree/dev-db/qdbm/files」にパッチファイルが・・・

qdbm-1.8.78-r2.ebuild に下記の様な記載があるので、この順番でパッチをあててみればいいかと実行

PATCHES=(
	"${FILESDIR}"/${PN}-configure.patch
	"${FILESDIR}"/${PN}-perl.patch
	"${FILESDIR}"/${PN}-ruby19.patch
	"${FILESDIR}"/${PN}-runpath.patch
	"${FILESDIR}"/${PN}-1.8.78-darwin.patch
)

gentoo linuxのページから上記5つのパッチをダウンロードしてきて適用。

[root@pbw work]# tar xfz qdbm-1.8.78.tar.gz
[root@pbw work]# cd qdbm-1.8.78/
[root@pbw qdbm-1.8.78]# patch -p1 < ../qdbm-configure.patch
patching file cgi/configure.in
patching file configure.in
patching file java/configure.in
patching file perl/configure.in
patching file plus/configure.in
patching file ruby/configure.in
[root@pbw qdbm-1.8.78]# patch -p1 < ../qdbm-perl.patch
patching file perl/Makefile.in
[root@pbw qdbm-1.8.78]# patch -p1 < ../qdbm-ruby19.patch
patching file ruby/Makefile.in
patching file ruby/configure.in
Hunk #1 succeeded at 8 (offset -9 lines).
patching file ruby/curia/mod_curia.c
patching file ruby/curia/rbcrtest
patching file ruby/depot/mod_depot.c
patching file ruby/depot/rbdptest
patching file ruby/myrbdoc
patching file ruby/villa/mod_villa.c
patching file ruby/villa/rbvltest
[root@pbw qdbm-1.8.78]# patch -p1 < ../qdbm-runpath.patch
patching file Makefile.in
patching file cgi/Makefile.in
patching file plus/Makefile.in
[root@pbw qdbm-1.8.78]# patch -p1 < ../qdbm-1.8.78-darwin.patch
patching file Makefile.in
[root@pbw qdbm-1.8.78]#

そして、「./configure; make ; make install」を実行。

そのあとは、Hyper Estraier側は特に再コンパイル等は不要で、コマンドを再実行

$ rm -rf casket3/
$ /usr/local/bin/estcmd gather -cl -il ja -sd casket3 ./draft
/usr/local/bin/estcmd: INFO: reading list from the directory: ./draft
/usr/local/bin/estcmd: INFO: status: name=casket3 dnum=0 wnum=0 fsiz=6899171 crnum=0 csiz=0 dknum=0
/usr/local/bin/estcmd: INFO: 1 (/var/www/cl2/draft/1.html): registered
/usr/local/bin/estcmd: INFO: 2 (/var/www/cl2/draft/10.html): registered
/usr/local/bin/estcmd: INFO: 3 (/var/www/cl2/draft/100.html): registered
<略>
/usr/local/bin/estcmd: INFO: flushing index words: name=casket3 dnum=1663 wnum=238115 fsiz=88518147 crnum=7035 csiz=641234 dknum=0
/usr/local/bin/estcmd: INFO: closing: name=casket3 dnum=1663 wnum=238718 fsiz=88669699 crnum=0 csiz=0 dknum=0
/usr/local/bin/estcmd: INFO: finished successfully: elapsed time: 0h 1m 10s
#

gcc7環境でも問題無く実行できるようになりました。

Oracle Cloud上のOralce Linux 8インスタンスでOSアップデートがpython3-clickの競合で失敗していた


Oracle Cloud上に立てていたOracle Linux 8サーバにdnf automaticによるアップデート設定を書けてあったんだけど、いまみてみたらアップデートが途中から失敗していた模様。

# dnf check-update
Ksplice for Oracle Linux 8 (x86_64)             2.7 MB/s | 418 kB     00:00
MySQL 8.0 for Oracle Linux 8 (x86_64)           7.6 MB/s | 1.6 MB     00:00
MySQL 8.0 Tools Community for Oracle Linux 8 (x 653 kB/s | 106 kB     00:00
MySQL 8.0 Connectors Community for Oracle Linux 109 kB/s |  14 kB     00:00
Oracle Software for OCI users on Oracle Linux 8  31 MB/s | 8.0 MB     00:00
Oracle Linux 8 EPEL Packages for Development (x  39 MB/s |  19 MB     00:00
Oracle Linux 8 BaseOS Latest (x86_64)            42 MB/s |  37 MB     00:00
Oracle Linux 8 Application Stream (x86_64)       42 MB/s |  29 MB     00:00
Latest Unbreakable Enterprise Kernel Release 6   44 MB/s |  22 MB     00:00

iwl100-firmware.noarch     999:39.31.5.1-999.8.el8                 ol8_baseos_latest
iwl1000-firmware.noarch    999:39.31.5.1-999.8.el8                 ol8_baseos_latest
iwl105-firmware.noarch     999:18.168.6.1-999.8.el8                ol8_baseos_latest
iwl135-firmware.noarch     999:18.168.6.1-999.8.el8                ol8_baseos_latest
iwl2000-firmware.noarch    999:18.168.6.1-999.8.el8                ol8_baseos_latest
iwl2030-firmware.noarch    999:18.168.6.1-999.8.el8                ol8_baseos_latest
iwl3160-firmware.noarch    999:25.30.13.0-999.8.el8                ol8_baseos_latest
iwl3945-firmware.noarch    999:15.32.2.9-999.8.el8                 ol8_baseos_latest
iwl4965-firmware.noarch    999:228.61.2.24-999.8.el8               ol8_baseos_latest
iwl5000-firmware.noarch    999:8.83.5.1_1-999.8.el8                ol8_baseos_latest
iwl5150-firmware.noarch    999:8.24.2.2-999.8.el8                  ol8_baseos_latest
iwl6000-firmware.noarch    999:9.221.4.1-999.8.el8                 ol8_baseos_latest
iwl6000g2a-firmware.noarch 999:18.168.6.1-999.8.el8                ol8_baseos_latest
iwl6050-firmware.noarch    999:41.28.5.1-999.8.el8                 ol8_baseos_latest
iwl7260-firmware.noarch    999:25.30.13.0-999.8.el8                ol8_baseos_latest
kernel-uek.x86_64          5.4.17-2102.203.5.el8uek                ol8_UEKR6
kernel-uek-devel.x86_64    5.4.17-2102.203.5.el8uek                ol8_UEKR6
ksplice.x86_64             1.0.55-1.el8                            ol8_ksplice
ksplice-core0.x86_64       1.0.55-1.el8                            ol8_ksplice
ksplice-tools.x86_64       1.0.55-1.el8                            ol8_ksplice
linux-firmware.noarch      999:20210617-999.8.git0f66b74b.el8      ol8_baseos_latest
linux-firmware.src         999:20210617-999.8.git0f66b74b.el8      ol8_baseos_latest
perl-Algorithm-Diff.src    1.1903-10.module+el8.3.0+7729+86a74f64  ol8_appstream
perl-Archive-Tar.src       2.32-440.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Archive-Zip.src       1.67-1.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-CPAN.src              2.27-2.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-CPAN-Meta.src         2.150010-397.module+el8.3.0+7729+86a74f64
                                                                   ol8_appstream
perl-CPAN-Meta-Requirements.src
                           2.140-397.module+el8.3.0+7729+86a74f64  ol8_appstream
perl-CPAN-Meta-YAML.src    0.018-1001.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-Carp.src              1.50-439.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Config-Perl-V.src     0.32-441.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Data-OptList.src      0.110-7.module+el8.3.0+7729+86a74f64    ol8_appstream
perl-Data-Section.src      0.200007-8.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-Digest.src            1.17-396.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Env.src               1.04-396.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Exporter.src          5.73-440.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-ExtUtils-CBuilder.src 1:0.280231-439.module+el8.3.0+7729+86a74f64
                                                                   ol8_appstream
perl-ExtUtils-Install.src  2.14-440.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-ExtUtils-MakeMaker.src
                           2:7.42-1.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-ExtUtils-Manifest.src 1:1.72-438.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-ExtUtils-ParseXS.src  1:3.40-439.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-File-Fetch.src        0.56-3.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-File-HomeDir.src      1.004-6.module+el8.3.0+7729+86a74f64    ol8_appstream
perl-File-Path.src         2.16-439.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-File-Temp.src         1:0.230.900-439.module+el8.3.0+7729+86a74f64
                                                                   ol8_appstream
perl-File-Which.src        1.23-4.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-Filter-Simple.src     0.95-439.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Getopt-Long.src       1:2.51-1.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-HTTP-Tiny.src         0.076-439.module+el8.3.0+7729+86a74f64  ol8_appstream
perl-IO-Compress.src       2.093-1.module+el8.3.0+7729+86a74f64    ol8_appstream
perl-IO-Socket-IP.src      0.39-6.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-IPC-Cmd.src           2:1.04-2.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-IPC-System-Simple.src 1.25-18.module+el8.3.0+7729+86a74f64    ol8_appstream
perl-JSON-PP.src           1:4.04-2.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Locale-Maketext.src   1.29-440.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-MRO-Compat.src        0.13-5.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-Math-BigInt.src       1:1.9998.18-1.module+el8.3.0+7729+86a74f64
                                                                   ol8_appstream
perl-Math-BigRat.src       0.2614-2.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Module-Build.src      2:0.42.29-4.module+el8.3.0+7729+86a74f64
                                                                   ol8_appstream
perl-Module-CoreList.src   1:5.20191220-1.module+el8.3.0+7729+86a74f64
                                                                   ol8_appstream
perl-Module-Load.src       1:0.34-439.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-Module-Load-Conditional.src
                           0.70-1.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-Module-Metadata.src   1.000037-1.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-Package-Generator.src 1.106-12.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Params-Check.src      1:0.38-396.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-Perl-OSType.src       1.010-397.module+el8.3.0+7729+86a74f64  ol8_appstream
perl-PerlIO-via-QuotedPrint.src
                           0.08-396.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Pod-Checker.src       4:1.73-396.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-Pod-Escapes.src       1:1.07-396.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-Pod-Parser.src        1.63-1001.module+el8.3.0+7729+86a74f64  ol8_appstream
perl-Pod-Perldoc.src       3.28.01-442.module+el8.3.0+7729+86a74f64
                                                                   ol8_appstream
perl-Pod-Simple.src        1:3.40-1.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Pod-Usage.src         4:1.69-396.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-Software-License.src  0.103014-5.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-Sub-Exporter.src      0.987-16.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Sub-Install.src       0.928-15.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Term-ANSIColor.src    4.06-397.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Term-Cap.src          1.17-396.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Test-Harness.src      1:3.42-2.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Test-Simple.src       3:1.302170-1.module+el8.3.0+7729+86a74f64
                                                                   ol8_appstream
perl-Text-Balanced.src     2.03-396.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Text-Diff.src         1.45-7.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-Text-Glob.src         0.11-5.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-Text-ParseWords.src   3.30-396.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Text-Tabs+Wrap.src    2013.0523-396.module+el8.3.0+7729+86a74f64
                                                                   ol8_appstream
perl-Text-Template.src     1.58-1.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-Thread-Queue.src      3.13-2.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-Time-Local.src        1:1.280-2.module+el8.3.0+7729+86a74f64  ol8_appstream
perl-URI.src               1.76-5.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-autodie.src           2.29-1001.module+el8.3.0+7729+86a74f64  ol8_appstream
perl-bignum.src            0.51-439.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-constant.src          1.33-1001.module+el8.3.0+7729+86a74f64  ol8_appstream
perl-experimental.src      0.020-439.module+el8.3.0+7729+86a74f64  ol8_appstream
perl-inc-latest.src        2:0.500-10.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-libnet.src            3.11-4.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-local-lib.src         2.000024-7.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-parent.src            1:0.237-2.module+el8.3.0+7729+86a74f64  ol8_appstream
perl-perlfaq.src           5.20191102-1.module+el8.3.0+7729+86a74f64
                                                                   ol8_appstream
perl-podlators.src         1:4.12-2.module+el8.3.0+7729+86a74f64   ol8_appstream
python3-asn1crypto.noarch  1.3.0-4.el8                             ol8_developer_EPEL
python3-click.noarch       7.1.2-3.el8                             ol8_developer_EPEL
python3-oauthlib.noarch    3.0.2-8.el8                             ol8_developer_EPEL
python36-oci-cli.noarch    2.26.2-1.el8                            ol8_oci_included
python36-oci-sdk.x86_64    2.42.0-1.el8                            ol8_oci_included
Security: kernel-uek-5.4.17-2102.202.5.el8uek.x86_64 is an installed security update
Security: kernel-uek-5.4.17-2102.201.3.el8uek.x86_64 is the currently running version
# dnf update -y
Last metadata expiration check: 0:07:28 ago on Mon 19 Jul 2021 09:41:55 AM JST.
Error:
 Problem: package python36-oci-cli-2.26.2-1.el8.noarch requires python3-click = 6.7, but none of the providers can be installed
  - cannot install both python3-click-7.1.2-3.el8.noarch and python3-click-6.7-8.el8.noarch
  - cannot install both python3-click-6.7-8.el8.noarch and python3-click-7.1.2-3.el8.noarch
  - cannot install the best update candidate for package python36-oci-cli-2.26.1-1.el8.noarch
  - cannot install the best update candidate for package python3-click-6.7-8.el8.noarch
(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
#

ol8_developer_EPELレポジトリからpython3-click-7.1.2-3のアップデートがきたけど、python36-oci-cliはpython3-clock-6.7要求だから、失敗、というもの。

現状を確認するために「dnf repolist –all」を実行

]# dnf repolist --all
repo id                          repo name                              status
ol8_MySQL80                      MySQL 8.0 for Oracle Linux 8 (x86_64)  enabled
ol8_MySQL80_connectors_community MySQL 8.0 Connectors Community for Ora enabled
ol8_MySQL80_tools_community      MySQL 8.0 Tools Community for Oracle L enabled
ol8_UEKR6                        Latest Unbreakable Enterprise Kernel R enabled
ol8_UEKR6_RDMA                   Oracle Linux 8 UEK6 RDMA (x86_64)      disabled
ol8_addons                       Oracle Linux 8 Addons (x86_64)         disabled
ol8_appstream                    Oracle Linux 8 Application Stream (x86 enabled
ol8_baseos_latest                Oracle Linux 8 BaseOS Latest (x86_64)  enabled
ol8_codeready_builder            Oracle Linux 8 CodeReady Builder (x86_ disabled
ol8_developer                    Oracle Linux 8 Development Packages (x disabled
ol8_developer_EPEL               Oracle Linux 8 EPEL Packages for Devel enabled
ol8_developer_UEKR6              Developer Preview of UEK Release 6 (x8 disabled
ol8_distro_builder               Oracle Linux 8 Distro Builder (x86_64) disabled
ol8_ksplice                      Ksplice for Oracle Linux 8 (x86_64)    enabled
ol8_kvm_appstream                Oracle Linux 8 KVM Application Stream  disabled
ol8_oci_included                 Oracle Software for OCI users on Oracl enabled
ol8_u0_baseos_base               Oracle Linux 8 BaseOS GA (x86_64)      disabled
ol8_u1_baseos_base               Oracle Linux 8.1 BaseOS (x86_64)       disabled
ol8_u2_baseos_base               Oracle Linux 8.2 BaseOS (x86_64)       disabled
ol8_u3_baseos_base               Oracle Linux 8.3 BaseOS (x86_64)       disabled
ol8_u4_baseos_base               Oracle Linux 8.4 BaseOS (x86_64)       disabled
ol8_x86_64_userspace_ksplice     Ksplice aware userspace packages for O disabled
#

これはEPELからパッケージを持ってこないようにするしかないかな・・・というところ

# cat /etc/yum.repos.d/oracle-epel-ol8.repo
[ol8_developer_EPEL]
name=Oracle Linux $releasever EPEL Packages for Development ($basearch)
baseurl=https://yum$ociregion.$ocidomain/repo/OracleLinux/OL8/developer/EPEL/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1
#

これに「exclude=python3-click」を追加して対象外に設定

# cat /etc/yum.repos.d/oracle-epel-ol8.repo
[ol8_developer_EPEL]
name=Oracle Linux $releasever EPEL Packages for Development ($basearch)
baseurl=https://yum$ociregion.$ocidomain/repo/OracleLinux/OL8/developer/EPEL/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1
exclude=python3-click
#

アップデート成功

# dnf check-update
Oracle Linux 8 EPEL Packages for Development (x  62 kB/s | 2.5 kB     00:00

iwl100-firmware.noarch     999:39.31.5.1-999.8.el8                 ol8_baseos_latest
iwl1000-firmware.noarch    999:39.31.5.1-999.8.el8                 ol8_baseos_latest
iwl105-firmware.noarch     999:18.168.6.1-999.8.el8                ol8_baseos_latest
iwl135-firmware.noarch     999:18.168.6.1-999.8.el8                ol8_baseos_latest
iwl2000-firmware.noarch    999:18.168.6.1-999.8.el8                ol8_baseos_latest
iwl2030-firmware.noarch    999:18.168.6.1-999.8.el8                ol8_baseos_latest
iwl3160-firmware.noarch    999:25.30.13.0-999.8.el8                ol8_baseos_latest
iwl3945-firmware.noarch    999:15.32.2.9-999.8.el8                 ol8_baseos_latest
iwl4965-firmware.noarch    999:228.61.2.24-999.8.el8               ol8_baseos_latest
iwl5000-firmware.noarch    999:8.83.5.1_1-999.8.el8                ol8_baseos_latest
iwl5150-firmware.noarch    999:8.24.2.2-999.8.el8                  ol8_baseos_latest
iwl6000-firmware.noarch    999:9.221.4.1-999.8.el8                 ol8_baseos_latest
iwl6000g2a-firmware.noarch 999:18.168.6.1-999.8.el8                ol8_baseos_latest
iwl6050-firmware.noarch    999:41.28.5.1-999.8.el8                 ol8_baseos_latest
iwl7260-firmware.noarch    999:25.30.13.0-999.8.el8                ol8_baseos_latest
kernel-uek.x86_64          5.4.17-2102.203.5.el8uek                ol8_UEKR6
kernel-uek-devel.x86_64    5.4.17-2102.203.5.el8uek                ol8_UEKR6
ksplice.x86_64             1.0.55-1.el8                            ol8_ksplice
ksplice-core0.x86_64       1.0.55-1.el8                            ol8_ksplice
ksplice-tools.x86_64       1.0.55-1.el8                            ol8_ksplice
linux-firmware.noarch      999:20210617-999.8.git0f66b74b.el8      ol8_baseos_latest
linux-firmware.src         999:20210617-999.8.git0f66b74b.el8      ol8_baseos_latest
perl-Algorithm-Diff.src    1.1903-10.module+el8.3.0+7729+86a74f64  ol8_appstream
perl-Archive-Tar.src       2.32-440.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Archive-Zip.src       1.67-1.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-CPAN.src              2.27-2.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-CPAN-Meta.src         2.150010-397.module+el8.3.0+7729+86a74f64
                                                                   ol8_appstream
perl-CPAN-Meta-Requirements.src
                           2.140-397.module+el8.3.0+7729+86a74f64  ol8_appstream
perl-CPAN-Meta-YAML.src    0.018-1001.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-Carp.src              1.50-439.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Config-Perl-V.src     0.32-441.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Data-OptList.src      0.110-7.module+el8.3.0+7729+86a74f64    ol8_appstream
perl-Data-Section.src      0.200007-8.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-Digest.src            1.17-396.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Env.src               1.04-396.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Exporter.src          5.73-440.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-ExtUtils-CBuilder.src 1:0.280231-439.module+el8.3.0+7729+86a74f64
                                                                   ol8_appstream
perl-ExtUtils-Install.src  2.14-440.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-ExtUtils-MakeMaker.src
                           2:7.42-1.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-ExtUtils-Manifest.src 1:1.72-438.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-ExtUtils-ParseXS.src  1:3.40-439.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-File-Fetch.src        0.56-3.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-File-HomeDir.src      1.004-6.module+el8.3.0+7729+86a74f64    ol8_appstream
perl-File-Path.src         2.16-439.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-File-Temp.src         1:0.230.900-439.module+el8.3.0+7729+86a74f64
                                                                   ol8_appstream
perl-File-Which.src        1.23-4.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-Filter-Simple.src     0.95-439.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Getopt-Long.src       1:2.51-1.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-HTTP-Tiny.src         0.076-439.module+el8.3.0+7729+86a74f64  ol8_appstream
perl-IO-Compress.src       2.093-1.module+el8.3.0+7729+86a74f64    ol8_appstream
perl-IO-Socket-IP.src      0.39-6.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-IPC-Cmd.src           2:1.04-2.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-IPC-System-Simple.src 1.25-18.module+el8.3.0+7729+86a74f64    ol8_appstream
perl-JSON-PP.src           1:4.04-2.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Locale-Maketext.src   1.29-440.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-MRO-Compat.src        0.13-5.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-Math-BigInt.src       1:1.9998.18-1.module+el8.3.0+7729+86a74f64
                                                                   ol8_appstream
perl-Math-BigRat.src       0.2614-2.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Module-Build.src      2:0.42.29-4.module+el8.3.0+7729+86a74f64
                                                                   ol8_appstream
perl-Module-CoreList.src   1:5.20191220-1.module+el8.3.0+7729+86a74f64
                                                                   ol8_appstream
perl-Module-Load.src       1:0.34-439.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-Module-Load-Conditional.src
                           0.70-1.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-Module-Metadata.src   1.000037-1.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-Package-Generator.src 1.106-12.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Params-Check.src      1:0.38-396.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-Perl-OSType.src       1.010-397.module+el8.3.0+7729+86a74f64  ol8_appstream
perl-PerlIO-via-QuotedPrint.src
                           0.08-396.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Pod-Checker.src       4:1.73-396.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-Pod-Escapes.src       1:1.07-396.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-Pod-Parser.src        1.63-1001.module+el8.3.0+7729+86a74f64  ol8_appstream
perl-Pod-Perldoc.src       3.28.01-442.module+el8.3.0+7729+86a74f64
                                                                   ol8_appstream
perl-Pod-Simple.src        1:3.40-1.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Pod-Usage.src         4:1.69-396.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-Software-License.src  0.103014-5.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-Sub-Exporter.src      0.987-16.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Sub-Install.src       0.928-15.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Term-ANSIColor.src    4.06-397.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Term-Cap.src          1.17-396.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Test-Harness.src      1:3.42-2.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Test-Simple.src       3:1.302170-1.module+el8.3.0+7729+86a74f64
                                                                   ol8_appstream
perl-Text-Balanced.src     2.03-396.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Text-Diff.src         1.45-7.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-Text-Glob.src         0.11-5.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-Text-ParseWords.src   3.30-396.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Text-Tabs+Wrap.src    2013.0523-396.module+el8.3.0+7729+86a74f64
                                                                   ol8_appstream
perl-Text-Template.src     1.58-1.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-Thread-Queue.src      3.13-2.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-Time-Local.src        1:1.280-2.module+el8.3.0+7729+86a74f64  ol8_appstream
perl-URI.src               1.76-5.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-autodie.src           2.29-1001.module+el8.3.0+7729+86a74f64  ol8_appstream
perl-bignum.src            0.51-439.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-constant.src          1.33-1001.module+el8.3.0+7729+86a74f64  ol8_appstream
perl-experimental.src      0.020-439.module+el8.3.0+7729+86a74f64  ol8_appstream
perl-inc-latest.src        2:0.500-10.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-libnet.src            3.11-4.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-local-lib.src         2.000024-7.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-parent.src            1:0.237-2.module+el8.3.0+7729+86a74f64  ol8_appstream
perl-perlfaq.src           5.20191102-1.module+el8.3.0+7729+86a74f64
                                                                   ol8_appstream
perl-podlators.src         1:4.12-2.module+el8.3.0+7729+86a74f64   ol8_appstream
python3-asn1crypto.noarch  1.3.0-4.el8                             ol8_developer_EPEL
python3-oauthlib.noarch    3.0.2-8.el8                             ol8_developer_EPEL
python36-oci-cli.noarch    2.26.2-1.el8                            ol8_oci_included
python36-oci-sdk.x86_64    2.42.0-1.el8                            ol8_oci_included
Security: kernel-uek-5.4.17-2102.202.5.el8uek.x86_64 is an installed security update
Security: kernel-uek-5.4.17-2102.201.3.el8uek.x86_64 is the currently running version
# dnf update -y
Last metadata expiration check: 0:00:29 ago on Mon 19 Jul 2021 09:57:01 AM JST.
Dependencies resolved.
================================================================================
 Package             Arch   Version                    Repository          Size
================================================================================
Installing:
 kernel-uek          x86_64 5.4.17-2102.203.5.el8uek   ol8_UEKR6           65 M
 kernel-uek-devel    x86_64 5.4.17-2102.203.5.el8uek   ol8_UEKR6           18 M
Upgrading:
 iwl100-firmware     noarch 999:39.31.5.1-999.8.el8    ol8_baseos_latest  154 k
 iwl1000-firmware    noarch 999:39.31.5.1-999.8.el8    ol8_baseos_latest  217 k
 iwl105-firmware     noarch 999:18.168.6.1-999.8.el8   ol8_baseos_latest  238 k
 iwl135-firmware     noarch 999:18.168.6.1-999.8.el8   ol8_baseos_latest  247 k
 iwl2000-firmware    noarch 999:18.168.6.1-999.8.el8   ol8_baseos_latest  241 k
 iwl2030-firmware    noarch 999:18.168.6.1-999.8.el8   ol8_baseos_latest  250 k
 iwl3160-firmware    noarch 999:25.30.13.0-999.8.el8   ol8_baseos_latest  1.7 M
 iwl3945-firmware    noarch 999:15.32.2.9-999.8.el8    ol8_baseos_latest   92 k
 iwl4965-firmware    noarch 999:228.61.2.24-999.8.el8  ol8_baseos_latest  105 k
 iwl5000-firmware    noarch 999:8.83.5.1_1-999.8.el8   ol8_baseos_latest  298 k
 iwl5150-firmware    noarch 999:8.24.2.2-999.8.el8     ol8_baseos_latest  151 k
 iwl6000-firmware    noarch 999:9.221.4.1-999.8.el8    ol8_baseos_latest  171 k
 iwl6000g2a-firmware noarch 999:18.168.6.1-999.8.el8   ol8_baseos_latest  314 k
 iwl6050-firmware    noarch 999:41.28.5.1-999.8.el8    ol8_baseos_latest  247 k
 iwl7260-firmware    noarch 999:25.30.13.0-999.8.el8   ol8_baseos_latest   18 M
 ksplice             x86_64 1.0.55-1.el8               ol8_ksplice         16 k
 ksplice-core0       x86_64 1.0.55-1.el8               ol8_ksplice        270 k
 ksplice-tools       x86_64 1.0.55-1.el8               ol8_ksplice         97 k
 linux-firmware      noarch 999:20210617-999.8.git0f66b74b.el8
                                                       ol8_baseos_latest  178 M
 python3-asn1crypto  noarch 1.3.0-4.el8                ol8_developer_EPEL 184 k
 python3-oauthlib    noarch 3.0.2-8.el8                ol8_developer_EPEL 182 k
 python36-oci-cli    noarch 2.26.2-1.el8               ol8_oci_included   7.4 M
 python36-oci-sdk    x86_64 2.42.0-1.el8               ol8_oci_included    16 M

Transaction Summary
================================================================================
Install   2 Packages
Upgrade  23 Packages

Total download size: 307 M
Downloading Packages:
<略>
Upgraded:
  iwl100-firmware-999:39.31.5.1-999.8.el8.noarch
  iwl1000-firmware-999:39.31.5.1-999.8.el8.noarch
  iwl105-firmware-999:18.168.6.1-999.8.el8.noarch
  iwl135-firmware-999:18.168.6.1-999.8.el8.noarch
  iwl2000-firmware-999:18.168.6.1-999.8.el8.noarch
  iwl2030-firmware-999:18.168.6.1-999.8.el8.noarch
  iwl3160-firmware-999:25.30.13.0-999.8.el8.noarch
  iwl3945-firmware-999:15.32.2.9-999.8.el8.noarch
  iwl4965-firmware-999:228.61.2.24-999.8.el8.noarch
  iwl5000-firmware-999:8.83.5.1_1-999.8.el8.noarch
  iwl5150-firmware-999:8.24.2.2-999.8.el8.noarch
  iwl6000-firmware-999:9.221.4.1-999.8.el8.noarch
  iwl6000g2a-firmware-999:18.168.6.1-999.8.el8.noarch
  iwl6050-firmware-999:41.28.5.1-999.8.el8.noarch
  iwl7260-firmware-999:25.30.13.0-999.8.el8.noarch
  ksplice-1.0.55-1.el8.x86_64
  ksplice-core0-1.0.55-1.el8.x86_64
  ksplice-tools-1.0.55-1.el8.x86_64
  linux-firmware-999:20210617-999.8.git0f66b74b.el8.noarch
  python3-asn1crypto-1.3.0-4.el8.noarch
  python3-oauthlib-3.0.2-8.el8.noarch
  python36-oci-cli-2.26.2-1.el8.noarch
  python36-oci-sdk-2.42.0-1.el8.x86_64
Installed:
  kernel-uek-5.4.17-2102.203.5.el8uek.x86_64
  kernel-uek-devel-5.4.17-2102.203.5.el8uek.x86_64

Complete!
#