yumのエラー解決法 [Errno 14] problem making ssl connection

yumを実行したときに[Errno 14] problem making ssl connectionが発生した場合、文字通りssl接続に問題があります。

エラー内容

[root@test ~]# yum XXXX
Loaded plugins: fastestmirror, refresh-packagekit, security
Determining fastest mirrors
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
base                                                                                        | 3.7 kB     00:00
base/primary_db                                                                             | 4.7 MB     00:00
epel                                                                                        | 4.3 kB     00:00
http://download.fedoraproject.org/pub/epel/6/x86_64/repodata/XXX: 
[Errno 14] problem making ssl connection
Trying other mirror.
http://download.fedoraproject.org/pub/epel/6/x86_64/repodata/XXX: 
[Errno 14] Peer cert cannot be verified or peer cert invalid
Trying other mirror.

解決策

/etc/yum.repos.d/epel.repoに「sslverify=0」を追記すると解決することがあります。

[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch 
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
sslverify=0 ← これを追記します。

[epel-debuginfo]
name=Extra Packages for Enterprise Linux 6 - $basearch - Debug
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch/debug
~以下略~

sslverifyはSSL証明書をチェックするかどうかを決めていて、デフォルトではチェックするになっています。しかし、古いダウンロードサーバーになると、SSL証明書の期限が切れていることがあり、エラーになってしまうのです。

pythonでファイル作成する際にFileNotFoundErrorが出る

ファイルをopen関数で作成したいがFileNotFoundエラーが出ます

python3.2以上を使ってるなら、os.makedirs()を引数exist_ok=Trueとして使うといいよ


open()でファイルを新規に作成するときに、存在しないディレクトリを含んだパスを指定するとFileNotFoundErrorが発生します。

エラーの例

open('new_dir/new_file.txt', 'w')
# FileNotFoundError

解決策

python3.2以降の場合、makedirs()のオプションexits_okを使えば、ディレクトリが存在しない場合は作成し、存在する場合にもエラーが起きません。これをopen()の前に入れてあげましょう。

import os
os.makedirs(ディレクトリ名, exist_ok=True)
python3.2未満の場合

一度exists()を使って存在確認をしてディレクトリを作成しましょう。

import os
if not os.path.exists(ディレクトリ名):
    os.makedirs(ディレクトリ名)





pythonの構文、型、インデックスでよくあるエラーたち



よくあるエラーの内容メモ

種類 メッセージ例 内容
構文 SyntaxError: unexpected EOF while parsing
SyntaxError: invalid syntax
(や:が足りないとき
構文 IndentationError: unindent does not match any outer indentation level 同じ階層にあるはずのインデントが一致していないなど
インポート ModuleNotFoundError: No module named XXXX 対象のモジュールがインストールされていないかもしくは、自作のモジュールの検索パスが違う
インポート ImportError: cannot import name ZZZ from XXX モジュールに含まれていないオブジェクトをインポートしようとしたとき
型や値 AttributeError: module 'ZZZ' has no attribute 'XXX' <オブジェクト>.<識別子>を呼び出しているとき、オブジェクトやメソッドの名前、オブジェクトの型を間違えている場合
型や値 TypeError: can only concatenate str (not "int") to str 異なる型のオブジェクトを+演算子で加算しようとした場合
型や値 ValueError: could not convert string to float: 'float number' 例えばfloat()は文字列を浮動小数点に変換するが、元の文字列が変換可能な値でない
型や値 ZeroDivisionError: division by zero ゼロで割ろうとしている
型や値 NameError: name 'a' is not defined 名前が見つからない場合、変数のスペルミスなど
インデックスやキー IndexError: list index out of range 配列などで要素数を超えたインデックス値を指定してしまった場合
インデックスやキー KeyError: 'x' 辞書(dict型)の値をキーを指定して取得する際に、存在しないキーを指定してしまった場合
ファイル FileNotFoundError: [Errno 2] No such file or directory: XXX open()などでファイルを読み込む際などに指定したファイルが見つからない場合
ファイル FileExistsError: [Errno 17] File exists: 'data' すでにあるファイルを作成しようとした場合

CentOSのインストールエラーの解決法 [drm:vmw_host_log [vmwgfx]] *ERROR* Failed to send log

CentOSをインストールした後に以下のようなエラーメッセージが出てしまう場合、グラフィックコントローラが原因の可能性があります。

[drm:vmw_host_log [vmwgfx]] *ERROR* Failed to send log
[drm:vmw_host_log [vmwgfx]] *ERROR* Failed to send log

仮想マシンの管理機能を使ってグラフィックスコントローラーの設定を「VMSVGA」から「VBoxVGA」に変更すると解消しました。

f:id:aquariumch:20210420171054p:plain
グラフィックスコントローラの変更




pythonの配列に関するエラー一覧と対処法

pythonの配列に関してよくあるエラーメッセージです。

エラーメッセージ 内容
IndexError: list index out of range インデックスの指定が範囲外
IndexError: pop from empty list 空のリストからの取り出し
ValueError: list.remove(x): x not in list 存在しない要素を削除しようとした

インデックスの指定が範囲外

エラーの例

a = [1, 2, 3]
print(a[3])

対処の例
配列の長さのチェックを事前にする

a = [1, 2, 3, 4]
if len(a) > 3:
    print(a[3])

空のリストからの取り出し

エラーの例

a = []
a.pop()

対処の例
配列に要素があるかチェック

a = []
if len(a) > 0:
    a.pop()

存在しない要素を削除しようとした

エラーの例

a = [1, 2, 3]
a.remove(4)

対処の例

a = [1, 2, 3, 4]
if 4 in a:
    a.remove(4)
print(a)




エクセルでマイナスの値をプラスに変えるABS関数

「-30なら30に」、「30なら30に」変えてくれないかしら

それならABS()って関数使えばいいよ

 

ABS(絶対値)とは?

絶対値というのは0からどれだけ離れているかを表すもので、「正の数」と「負の数」関係なく示された値のことです。0からの距離と覚えておくと便利です。

例えば、正の数「+20」の場合の絶対値は「20」、負の数「-20」の場合の絶対値も「20」となります。

エクセルでのABSの使い方

変換したいセルがA1だとすると以下を記述します。大文字でも小文字でも構いません。

=abs("変換したいセル")

f:id:aquariumch:20210420062109p:plain

変えたいセルを指定

 入力後にEnterを押すと30が現れます

f:id:aquariumch:20210420134515p:plain

ABSでマイナスがなくなる

プラス30は30のままです。

f:id:aquariumch:20210420134610p:plain

プラスはそのまま