DevOps

CentOS7 安裝 ffmpeg

CentOS7 安裝 ffmpeg

安裝 EPEL 來使用其他 repo 資源

yum install -y epel-release

sudo rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

sudo rpm –import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro

sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm

yum repolist 

接著執行

yum install -y ffmpeg

查看版本

ffmpeg -version 

Continue Reading

[解決] CentOS7 - PocketSphinx 安裝過程狀況排解

##[解決] CentOS7 - PocketSphinx 安裝過程狀況排解

在安裝 PocketSphinx 過程中

pip install PocketSphinx

發生了安裝錯誤訊息:

error: command ‘swig’ failed with exit status

這部分處理很簡單,缺什麼安裝什麼:

先來安裝 swig

yum  install swig -y

接著再進行安裝,出現另一個錯誤:

**include <pulse/pulseaudio.h>

解決方式:

CVT2HUGO: error: command 'gcc' failed with exit status 1**
yum install python34-devel -y
yum install alsa-lib-devel alsa-utils

最後執行安裝~完成

pip install PocketSphinx

Continue Reading

解決 Python [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed

解決 Python [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed

最近在測試 wit.ai 語音辨識過程出現 CERTIFICATE_VERIFY_FAILED 錯誤,原因是 Python 3.6 之後的版本更改了 OpenSSL 協定,因此需要手動進行更新

Could not request results ; recognition connection failed: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056) Could not request results from Wit.ai service; recognition connection failed: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)

Continue Reading

CentOS7 安裝 PyAudio 發生錯誤[解決]

CentOS7 安裝 PyAudio 發生錯誤[解決]

執行

pip install PyAudio

如果出現以下次錯誤


Collecting PyAudio
  Downloading https://files.pythonhosted.org/packages/ab/42/b4f04721c5c5bfc196ce156b3c768998ef8c0ae3654ed29ea5020c749a6b/PyAudio-0.2.11.tar.gz
Building wheels for collected packages: PyAudio
  Building wheel for PyAudio (setup.py) ... error
  ERROR: Complete output from command /opt/rh/rh-python36/root/usr/bin/python3 -u -c 'import setuptools, tokenize;__file__='"'"'/tmp/pip-install-aqdgoicv/PyAudio/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-3dqdycqf --python-tag cp36:
  ERROR: running bdist_wheel
  running build
  running build_py

原因在於,需要安裝 portaudio ,解決方式如下:

wget http://portaudio.com/archives/pa_stable_v190600_20161030.tgz
tar -xvf pa_stable_v190600_20161030.tgz
cd portaudio
./configure

接著在執行安裝,應該就會正常

pip install PyAudio

Continue Reading

CentOS7 安裝 Python3

CentOS7 安裝 Python3

在這裡紀錄如何在 CentOS7 安裝 Python3 ,主要透過 Software Collections(SCL)來安裝 python3

vim  /etc/yum.repos.d/CentOS-Base.repo

尋找 extras

Continue Reading

AWS 與 Google 語音辨識費用比較

AWS 與 Google 語音辨識費用比較

這裡找了一下 AWS 跟 Google 語音辨識的計費比較.

目前評估兩家換算的金額都很接近,

如果使用一次單字平台測驗,其中包括單字加上老師補充單字

以每次使用 30次及 60 次口說題,大致會花費 $NT 6~11 塊

AWS Google
產品名稱 Transcribe speech-to-text
網址 https://aws.amazon.com/tw/transcribe/ https://cloud.google.com/speech-to-text/pricing?hl=zh-tw
計費方式 0~15秒 0.18,之後每秒 0.012 每 15秒 0.06
測驗一個單字 0.18 0.18
單字平台(30次) 5.4 5.4
單字平台(60次) 10.8 10.8
單位 台幣

備註

中國區域語音辨識價格約略在 0.004 元/次 人民幣 驰声 http://www.chivox.com/englishoralevaluation/index.aspx 百度 http://ai.baidu.com/docs#/ASR-Pricing/top 讯飞 https://www.xfyun.cn/services/voicedictation

Continue Reading

Mac Install Vim 外掛 - NERDTree

Mac Install NERDTree

安裝 pathogen.vim

mkdir ~/.vim/autoload
mkdir ~/.vim/bundle
curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim

開啟 vim ~/.vimrc 加入

execute pathogen#infect()

安裝 NEDRTree

cd ~/.vim/bundle
git clone https://github.com/scrooloose/nerdtree.git

可以先試著開啟 vim 並且輸入 :NERDTree

CVT2HUGO: 如果看到目錄就表示成功
:NERDTree

接著,將快捷鍵加入 vim ~/.vimrc

vim ~/.vimrc

設定 F5 為快捷鍵

nnoremap <silent> <F5> :NERDTreeToggle<CR>

o 開啟關閉的文件或目錄

t 在頁籤開啟

T 在後台頁籤開啟並且執行

p 到上層目錄

K 到第一節點

J 至最後節點

u 開啟上層目錄

m 顯示文件系統菜單(添加刪除移動操作)

q 關閉

Ctrl+ww cycle though all windows

Ctrl+wh takes you left a window

Ctrl+wj takes you down a window

Continue Reading

在 CentOS7 安裝 Protocol Buffer

這裡記錄在 CentOS7 安裝 Protocol Buffer 流程

sudo yum install autoconf automake libtool unzip gcc-c++ -y
git clone https://github.com/google/protobuf.git
cd protobuf
./autogen.sh
./configure
make
make install 
protoc --version

Continue Reading

Failed to decode response: zlib_decode(): data error 解法

Failed to decode response: zlib_decode(): data error 解法

composer clear-cache

把下方這段加到 composer.json

    "repositories": [
        {
            "type": "composer",
            "url": "https://packagist.org"
        },
        { "packagist": false }
    ],

執行

sudo composer update

Continue Reading

DDoS/Dos 之 SYN 攻擊

DDoS/Dos 之 SYN 攻擊

DDoS/Dos 攻擊通常可以用不同模式來達成,這裡介紹其中常見的 SYN 攻擊

SYN 攻擊

主機資源在 Client 端訪問時,通常會透過三次交握來溝通。主機第一次收到 Client 的 SYN 請求,會先處於 SYN_RCVD 的半連結狀態,並且發送封包給 Client 端進行第二次交握,Client 收到確認後,第三次才會正式攜帶參數及資料與主機溝通。而如果攻擊方透過 Client 端發送大量的偽造 IP 發送 SYN 封包給主機,每一個封包都會建立一個等待 Client 回覆確認,由於是偽造IP,因此 Server 端會持續的重複嘗試與 Client 溝通,直到主機設定的超時時間抵達才終止程序。當主機存在大量的半連結狀態連結時,並且這些連結都是隨機IP形式存在,超過主機可負荷的量就會讓主機掛掉。

檢視目前處遇 SYN_RCVD 狀態的連結方式:

netstat -n -p TCP | grep SYN_RECV

防止 SYN 攻擊有以下做法:

  • 適當的給予超時時間(SYN Timeout)
  • 容許大量的半連結狀態連結
  • 使用 SYN COOKIES 技術
  • 防火牆

Continue Reading

解決:Yum 執行發生 Error: rpmdb open failed 錯誤

解決:Yum 執行發生 Error: rpmdb open failed 錯誤

在一次執行 yum 相關指令時,會爆出 Error: rpmdb open failed 錯誤 錯誤的原因是過去執行 yum install 或 update 過程中,可能有不正常中斷的情況發生,導致rpm 資料庫毀損。

Continue Reading

EC2 安裝 composer

EC2 安裝 composer

這裡記錄如何在 AWS EC2 安裝 composer

cd ~
sudo curl -sS https://getcomposer.org/installer | sudo php
sudo mv composer.phar /usr/local/bin/composer
sudo ln -s /usr/local/bin/composer /usr/bin/composer
sudo componstall
composer -v

Continue Reading

解決 xxx Packages excluded due to repository priority protections

解決 xxx Packages excluded due to repository priority protections

在 EC2 進行 PHP 升級過程中,發生 xxx Packages excluded due to repository priority protections

此狀況發生原因是,啟用了 priorities ,讓 plugin 安裝會選擇高優先權的 packages

解決方式,可直接開啟 priorities.conf 將設定關閉即可

vim /etc/yum/pluginconf.d/priorities.conf

設定 enabled = 0

Continue Reading

GCP 輪動更新流程

GCP 輪動更新流程

這裡記錄一下在 GCP 如何進行輪動更新的流程:

建立映像檔

  1. Computer Engine > 映像檔 > 建立映像檔
  2. 輸入“名稱”、選取”來源“選項點選磁碟,以及“來源磁碟”選取實例
  3. 勾選讓執行個體繼續執行
  4. 輸入 “系列”、“說明”
  5. 點選建立

Continue Reading

Vimeo / 403 Forbidden 解決方式

Vimeo / 403 Forbidden 解決方式

在過去學習系統的影片為了避免被濫用,緊急情況下採用了 Vimeo 上架我們的線上學習影片,好處是可以直接針對影片設定允許IP及網域。

但最近前線反應在 Vimeo 上傳影片後,無法從後台同步回來。

後台檢查發現有 403 的錯誤,描述如下:

Continue Reading

Go - CentOS 安裝 golang

這裡指令皆使用 root 身分執行,若其他身分請使用 sudo

安裝環境為 CentOS 7 以上版本

這裡會介紹兩種安裝方式,第一種較為簡單,是直接透過 yum 安裝,另一種方式是直接下載安裝(推薦)

方法一、直接使用 yum 安裝

yum 安裝方式

# yum install golang

Continue Reading

SSH 限制用戶訪問指定目錄指令

SSH 限制用戶訪問指定目錄指令

以下指令都是以 root 身分執行,其他用戶請加上 sudo

在Linux 設定用戶,並且開放 ssh 連線後,有時為了系統安全,需限制用戶僅能訪問指定目錄及指令

可以透過 chrooted 來進行設定

Continue Reading

CentOS 管理 mail/root - 解決 You have new mail in /var/spool/mail/root

CentOS 解決 You have new mail in /var/spool/mail/root

以下指令都是在 root 身分下執行,其他用戶身分請加上 sudo

在 CentOS 的 root email 可以直接查看 /var/sppl/mail/root 方式了解郵件內容

cat /var/spool/mail/root

Continue Reading

Linux 用戶權限設定

Linux 用戶權限設定

Linux 的用戶權限可以透過 usermod 設定,常用的命令包括

  -aG 將用戶加入附屬群組
  -c, --comment COMMENT         new value of the GECOS field
  -d, --home HOME_DIR           預設登入目錄 (new home directory for the user account)
  -e, --expiredate EXPIRE_DATE  set account expiration date to EXPIRE_DATE
  -f, --inactive INACTIVE       set password inactive after expiration
                                to INACTIVE
  -g, --gid GROUP               修改用戶群組 (force use GROUP as new primary group)
  -G, --groups GROUPS           修改用戶附屬群組 (new list of supplementary GROUPS)
  -a, --append                  append the user to the supplemental GROUPS
                                mentioned by the -G option without removing
                                him/her from other groups
  -h, --help                    display this help message and exit
  -l, --login NEW_LOGIN         new value of the login name
  -L, --lock                    lock the user account
  -m, --move-home               move contents of the home directory to the
                                new location (use only with -d)
  -o, --non-unique              allow using duplicate (non-unique) UID
  -p, --password PASSWORD       use encrypted password for the new password
  -R, --root CHROOT_DIR         directory to chroot into
  -s, --shell SHELL             設定用戶登入後的shell 版本 (new login shell for the user account)
  -u, --uid UID                 new UID for the user account
  -U, --unlock                  unlock the user account
  -Z, --selinux-user SEUSER     new SELinux user mapping for the user account

Continue Reading

Composer git hooks

Composer git hooks

Composer Git Hooks 可以讓你直接在 composer 設定進行管理 git hooks,透過這樣管理的好處在於,能避免每個開發者都有各自的git hooks 設定,透過 composer git hooks 能將所有開發者的 git hooks 統一納入版控。

Continue Reading