顯示具有 安裝 標籤的文章。 顯示所有文章
顯示具有 安裝 標籤的文章。 顯示所有文章

2019年10月22日 星期二

Ubuntu 18.04 安裝 SSH Server , 設定為文字開機模式 (disable GUI boot mode)

確定一下 Ubuntu 版本是否為 18.04:
lsb_release -a
執行結果:
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.3 LTS
Release:        18.04
Codename:       bionic

安裝 SSH Server :
sudo apt-get install openssh-server
sudo update-rc.d ssh defaults
sudo service ssh start

關閉GUI開機模式,並且重開機生效:
sudo systemctl set-default multi-user.target
sudo sync;sync;sync;reboot

假若要再重新設定GUI開機模式:
sudo systemctl set-default graphical.target
sudo sync;sync;sync;reboot

設定 NTP 時間同步主機為 clock.stdtime.gov.tw,編輯 /etc/systemd/timesyncd.conf 檔案
sudo vi /etc/systemd/timesyncd.conf
將內容 #NTP= 前面註解符號(#)刪除,順便設定同步主機後存檔:
#NTP=
NTP=clock.stdtime.gov.tw

重新啟動時間同步服務後,順便看一下執行狀態:
sudo service systemd-timesyncd restart
sudo service systemd-timesyncd status

執行結果已經顯示同步 time server 從原來的 ntp.ubuntu.com 改為 clock.stdtime.gov.tw:
● systemd-timesyncd.service - Network Time Synchronization
 (...略...)
   Status: "Synchronized to time server 211.22.103.158:123 (clock.stdtime.gov.tw)."
 (...略...)

#

2017年4月26日 星期三

Windows 10 + NVIDIA GPU + TensorFlow


  1. 參考 Install TensorFlow with GPU for Windows 10
  2. 強烈建議:
    • 確實檢查自己的NVIDIA顯示卡是否支援?官網
    • Windows設定 %CUDA_HOME% 和添加CUDA相關目錄至%PATH%環境變數
    • Anaconda 同時安裝 Python2 和 Python3 兩版本:下載連結
    • 建立 Conda tensorflow-gpu 虛擬環境時,記得 Python3版本為 3.5
      • conda create -n tensorflow-gpu python=3.5 (暫時別選3.6)
    • activate tensorflow-gpu 後,安裝 numbapro 套件
    • 開啟 jupyter notebook 後,執行下列 python3 code:參考網站
    • from numbapro import cuda, vectorize, guvectorize, check_cuda
      from numbapro import void, uint8 , uint32, uint64, int32, int64, float32, float64, f8
      import numpy as np
      check_cuda()
      
    • 確認執行結果是否類似下列結果,最後出現的是 True !:
    • ------------------------------libraries detection-------------------------------
      Finding cublas
       located at d:\Anaconda3\envs\tensorflow-gpu\DLLs\cublas64_70.dll
       trying to open library... ok
      Finding cusparse
       located at d:\Anaconda3\envs\tensorflow-gpu\DLLs\cusparse64_70.dll
       trying to open library... ok
      Finding cufft
       located at d:\Anaconda3\envs\tensorflow-gpu\DLLs\cufft64_70.dll
       trying to open library... ok
      Finding curand
       located at d:\Anaconda3\envs\tensorflow-gpu\DLLs\curand64_70.dll
       trying to open library... ok
      Finding nvvm
       located at d:\Anaconda3\envs\tensorflow-gpu\DLLs\nvvm64_30_0.dll
       trying to open library... ok
       finding libdevice for compute_20... ok
       finding libdevice for compute_30... ok
       finding libdevice for compute_35... ok
      -------------------------------hardware detection-------------------------------
      Found 2 CUDA devices
      id 0    b'GeForce GTX 1060 6GB'                              [SUPPORTED]
                            compute capability: 6.1
                                 pci device id: 0
                                    pci bus id: 2
      id 1      b'GeForce GTX 650'                              [SUPPORTED]
                            compute capability: 3.0
                                 pci device id: 0
                                    pci bus id: 1
      Summary:
       2/2 devices are supported
      PASSED
      Out[1]:
      True
      
  3. 兩張顯示卡的GPU數量不同,另外在Windows環境設定TF_MIN_GPU_MULTIPROCESSOR_COUNT=2 錯誤訊息才消失
希望大家能少走點冤枉路...:P #

2017年3月13日 星期一

pythone upgrade all installed packages 更新所有已安裝的packages

pip freeze --local | grep -v '^\-e' | cut -d = -f 1  | xargs -n1 pip install -U

pip3 freeze --local | grep -v '^\-e' | cut -d = -f 1  | xargs -n1 pip3 install -U
另外一種方式也是可以的...
pip install -U $(pip3 freeze |awk '{split($0,a,"=="); print a[1]}')

pip3 install -U $(pip3 freeze |awk '{split($0,a,"=="); print a[1]}')
#

2016年1月29日 星期五

pip 指令更新 python packages

以下皆以 pip 指令進行示範:
  • 更新一個已知名稱的 Python package,如 numpy package
  • pip install -U numpy
    
    或是
    pip install --upgrade numpy
    


  • 更新所有已安裝的packages
    pip list |awk '{print $1}' |xargs -n 1 pip install --upgrade
    
    或是
    for i in `pip list |awk '{print $1}'`; do echo $i; pip install --upgrade $i; done
    

#

2014年10月18日 星期六

製作 Mac OS X Yosemite 開機安裝碟

透過 App Store 直接升級至新版 Mac OS X Yosemite 或許是最快的方法。但對於需要更新多部 Mac 或打造一部 Hackintosh 而言,卻不一定是最理想的方式。

如同以往的 Mac OS X 升級,完成更新安裝之後,installer安裝程式也會自動從應用程式(Applications)文件夾中消失。我們可透過同時按下鍵盤option鍵並用滑鼠點擊畫面上的Free Upgrade (免費升級)按鈕或是利用 Time Machine 備份檔案重新還原 installer安裝程式。為了節省時間,建議更新至新版 Yosemite 前最好還是製作一支 USB 開機安裝碟,方便日後使用。


  1. 下載 Yosemite Installer:打開 App Store,按下鍵盤 option 鍵,同時用滑鼠點擊畫面上的Free Upgrade (免費升級)按鈕,進行安裝程式下載。

  2. 檔案大小 5.16GB 需要一些時間進行下載


  3. 格式化USB隨身碟:準備一支至少8GB容量的USB隨身碟,先將裡面資料備份後,準備以「硬碟工具程式」進行隨身碟格式化。選擇磁碟格式:Mac OS 擴充格式(日誌式)、輸入名稱:Yosemite 後,進行磁碟機的清除工作。



  4. 寫入開機安裝碟:當Yosemite安裝檔案下載完成後,開啟「終端機」(Terminal)應用程式。並且直接貼上下列指令:

  5. sudo /Applications/Install\ OS\ X\ Yosemite.app/Contents/Resources/createinstallmedia --volume /Volumes/Yosemite --applicationpath /Applications/Install\ OS\ X\ Yosemite.app --nointeraction
    

  6. 輸入密碼:依照畫面提示輸入帳號密碼,等待安裝檔案寫入USB隨身碟中,耐心稍待片刻,直到畫面上出現 Done. 提示。
  7. 看到畫面上出現 Done. 提示

  8. 以USB安裝碟開機:準備升級更新的 Mac 先插上 Yosemite 開機安裝碟,然後按住option鍵同時開機,直到安裝畫面出現後,依照步驟進行安裝即可。

#

2014年7月23日 星期三

ubuntu 安裝 nginx,並設定 virtual hosts

1. 安裝 nginx 與 PHP5

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install nginx
$ sudo apt-get install fcgiwrap php5-fpm php5-xcache php5-mysql php5-pgsql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl


2. 創建要放置網頁檔案的磁碟路徑(放在/var/www/之下)

$ sudo mkdir -p /var/www/yourdomain1.com/html
$ sudo mkdir -p /var/www/yourdomain2.com/html

$ sudo chown -R www-data:www-data /var/www/yourdomain1.com/html
$ sudo chown -R www-data:www-data /var/www/yourdomain2.com/html

$ sudo chmod -R 755 /var/www


3. 編寫 index.html

$ sudo vi /var/www/yourdomain1.com/html/index.html
$ sudo vi /var/www/yourdomain2.com/html/index.html

範例如下:

<html lang="zh-TW">
  <head>
 
    <title>page title</title>
    <script src="my-javascript-file.js"></script>
    <link href="my-css-file.css" rel="stylesheet"></link>
  </head>
  <body>
    <!-- 網頁內容就放在body內吧 -->
    Hello, yourdomain1.com <!-- 或是 yourdomain2.com -->
  </body>
</html>


4. 設定第一個網站設定檔

$ sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/yourdomain1.com
$ sudo vi /etc/nginx/sites-available/yourdomain1.com

修改設定檔內容:

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root /var/www/yourdomain1.com/html;
    index index.html index.htm index.php;

    server_name yourdomain1.com www.yourdomain1.com;

    location / {
        try_files $uri $uri/ =404;
    }
}

5. 設定第二個網站設定檔

$ sudo cp /etc/nginx/sites-available/yourdomain1.com /etc/nginx/sites-available/yourdomain2.com
$ sudo vi /etc/nginx/sites-available/yourdomain2.com

修改設定檔內容,注意listen設定有些不同:

server {
    listen 80;
    listen [::]:80;

    root /var/www/yourdomain2.com/html;
    index index.html index.htm index.php;

    server_name yourdomain2.com www.yourdomain2.com;

    location / {
        try_files $uri $uri/ =404;
    }
}

6. 讓兩個網站的設定檔案生效

$ sudo ln -s /etc/nginx/sites-available/yourdomain1.com /etc/nginx/sites-enabled/
$ sudo ln -s /etc/nginx/sites-available/yourdomain2.com /etc/nginx/sites-enabled/


7. 移除預設設定檔案

$ sudo rm /etc/nginx/sites-enabled/default


8. 修改 nginx.conf

$ sudo vi /etc/nginx/nginx.conf

將 server_names_hash_bucket_size: 64; 前面的註解符號 # 移除,然後存檔離開


9. 重新啟動 nginx

$ sudo service nginx restart


10. 修改 hosts,新增網站資料

$ sudo vi /etc/hosts

新增
192.168.1.80 yourdomain1.com
192.168.1.80 yourdomain2.com


11. 設定開機時,自動啟動nginx服務

$ sudo update-rc.d nginx defaults


#

2014年3月30日 星期日

ubuntu 安裝 SSH Server

先確認 /usr/sbin/sshd 是否存在,若已存在則繼續使用 ps -ef | grep ssh 確認 sshd (SSH Server) 是否執行。

若sshd檔案存在,只是尚未執行,可啟動ssd。

$ sudo /etc/init.d/ssh start


若以上皆確認不存在,則可以

$ sudo apt-get install openssh-server

進行安裝 SSH Server。

$ ssh localhost

設定開機時自動啟動 SSH Server。

$ sudo update-rc.d ssh defaults

測試一下

#

ASUS VC60 i3-3110M 安裝 ubuntu 14.04 (beta2)

先至 Ubuntu 官方網站下載 Ubuntu 14.04 (Beta 2) Desktop 64bits ISO
http://releases.ubuntu.com/14.04/ubuntu-14.04-beta2-desktop-amd64.iso

把iso檔案燒錄至USB隨身碟中,Windows 電腦可以使用 Win32 Disk Imager完成燒錄。

以Ubuntu 14.04 USB隨身碟開機,可試用、可安裝至ASUS VC60 i3-3110M的無作業系統版電腦。

測試結果:
Ubuntu 13.04 Desktop 64bits : 不支援VC60的無線網路卡、支援S/PDIF數位音效輸出及類比輸出
Ubuntu 13.10 Desktop 64bits : 無法完成開機(不知道原因為何)
Ubuntu 14.04 (Beta 2) Desktop 64bits : 支援VC60的無線網路卡、支援S/PDIF數位音效輸出及類比輸出

$ uname -a
Linux myhost 3.13.0-20-generic #42-Ubuntu SMP Fri Mar 28 09:56:33 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux


好機器,不買嗎?:P

#

2013年11月29日 星期五

Mac OS X 安裝及使用  Homebrew

ubuntu apt 用習慣的朋友,應該也能很快適應 Homebrew for Mac OS X的。

安裝步驟參考官網及實際經驗筆記如下:
> ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go/install)"
> brew update

接著就能安裝自己想要的 UNIX Packages,如:wget, curl, lynx ...
> brew install wget
> brew install lynx

查詢經安裝的套件列表 
> brew list

或是想要移除已經安裝的套件
> brew uninstall wget

自動更新已經安裝的套件
> brew upgrade wget

其他功能可以藉由Help看指令參數及用法 
> brew help


延伸閱讀: 

#

2013年11月18日 星期一

Ubuntu precise amd64 安裝筆記


# apt-get update & 
sudo apt-get -y update
sudo apt-get dist-upgrade
sudo apt-get --no-install-recommends -y install build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev libgdbm-dev ncurses-dev automake libtool bison subversion pkg-config libffi-dev vim

# install python
sudo apt-get install build-essential
sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
cd /tmp
wget http://python.org/ftp/python/2.7.6/Python-2.7.6.tgz
tar -xvf Python-2.7.6.tgz
cd Python-2.7.6
./configure
make
sudo make altinstall

# install easy_install for python 2.7
cd ..
sudo apt-get install python-setuptools

# install Flask for python
sudo easy_install Flask

# prepare to install uwsgi, nginx
sudo useradd -r -g www-data -s /bin/false uwsgi
sudo mkdir -p /var/www/myapp
sudo chown uwsgi:www-data /var/www/myapp -R
sudo useradd -G www-data myuser
sudo usermod -a -G www-data myuser

# install uwsgi
sudo pip install uwsgi
sudo mkdir -p /var/log/uwsgi
sudo touch /var/log/uwsgi/myapp.log
cd /var/www/myapp
sudo vi uwsgi.xml
sudo /usr/local/bin/uwsgi -x uwsgi.xml

# install nginx
sudo apt-get install nginx
sudo service nginx start
cd /etc/nginx/
cd sites-enabled/
sudo vi default


uwsgi.xml

<?xml version="1.0"?>
<uwsgi id="myapp">
  <module>application:app</module>
  <socket>/tmp/uwsgi.sock</socket>
  <socket>127.0.0.1:8000</socket>
  <processes>4</processes>
  <chdir>/var/www/myapp</chdir>
  <pidfile>/tmp/myapp.pid</pidfile>
  <daemonize>/var/log/uwsgi/myapp.log</daemonize>
  <stats>/tmp/myapp.stats</stats>
  <log-format>``%(addr) - %(user) [%(ltime)] "%(method) %(uri) %(proto)" %(status) %(size) `` "%(referer)" "%(uagent)"</log-format>
  <uid>uwsgi</uid>
  <gid>www-data</gid>
  <chmod-socket>775</chmod-socket>
</uwsgi>

/etc/nginx/sites-enabled/default

server {
        listen 8080;
        root /var/www/myapp;
        server_name myapp;

        try_files $uri @uwsgi;
        location @uwsgi {
                include uwsgi_params;
                uwsgi_pass unix:/tmp/myapp.sock;
        }
}


2013年8月25日 星期日

ubuntu 安裝 easy_install 和 MySQL Connector/Python


  1. 安裝 easy_install
  2. > sudo wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py -O - | python
  3. 安裝 Mysql Connector/Python
  4. > sudo easy_install mysql-connector-python

範例程式
import mysql.connector
from mysql.connector import errorcode

try:
  cnx = mysql.connector.connect(user='userid', password='******',
                              host='127.0.0.1',
                              database='dbname', charset='utf8')
except mysql.connector.Error as err:
  if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
    print("Something is wrong with your user name or password")
  elif err.errno == errorcode.ER_BAD_DB_ERROR:
    print("Database does not exists")
  else:
    print(err)
else:
  cursor = cnx.cursor()
  query = ("SELECT * FROM tablename ORDER BY id DESC LIMIT 10;")
  cursor.execute(query)
  for i in cursor:
    print i
  cursor.close()
  cnx.close() 


延伸閱讀:MySQL Connector/Python 官網

#

2013年8月23日 星期五

Windows 7 安裝 Python 2.7 與 easy_install


  1. Python.org官網下載Windows 7安裝檔 python-2.7.5.msi (以32bits為例)
  2. 安裝完成後,設定新增系統變數PYTHON_HOME與修改PATH:

    • PYTHON_HOME = D:\Python27 (以硬碟D為安裝範例)
    • PATH = ~;%PYTHON_HOME%;%PYTHON_HOME%\Scripts\; (加在原來變數值後)



  3. 至官網下載 easy_install 並完成安裝
  4. 開啟cmd.ext 執行 python --version 確認安裝完成,顯示版本號為Python 2.7.5

#

2013年5月12日 星期日

自行車踏板拆卸


[自行車踏板拆卸]
工具:15mm開口板手、梅開板手、工作手套、抹布…
方式:左右兩面踏板皆是向車後轉鬆、向車前鎖緊
其他:萬一真的鎖得很緊或生鏽,可以利用橡皮木槌敲板手或WD-40協助卸下



#

2012年12月9日 星期日

ubuntu 文字模式下的 mp3 播放軟體

現安裝 mpg321 播放軟體:

> sudo apt-get install mpg321

安裝完成後,就可以直接透過 mpg321 在文字命令模式下播放 MP3 音樂檔。

> mpg321 *.mp3 &

#

2012年11月6日 星期二

黑蘋果 Hackintosh Mac OS X Mountain Lion



  • Motherboard : Gigabyte Z77 D3H
  • CPU : Intel i7 3770
  • Memory : DDR3 1600 32GB Kingstone (8G*4) 
  • Video : MSI GTX650PE
  • SSD : Intel 330 120GB
  • OS : 購自 Apple App Store - Apple OS X Mountain Lion


* 參考網址:http://www.metamuse.net/2012/09/2012-osx-1082-pc.html

* Boot Loader : Chameleon-2.1-r2069
   參數: -v -x PCIRootUID=0

* 驅動程式 Kexts : 懶人包


  1. run Kext Utilityy

<install Network for GA-Z77-D3H motherboard>
  2. drag AtherosL1cEthernet.kext to Kext Utility window

<install Audio for GA-Z77-D3H motherboard>
  3. run VoodooPatcher and wait...
  4. run VoodooLoader Installer and wait ...

or

  3. drag VoodooHDA.kext to Kext Utility window
  4. drag appleHDADisabler.kext to Kext Utility window

<install nVidia GTX 650 driver>
  5. download from AMD offical site

#




2012年2月17日 星期五

將 ubuntu 中文輸入改成 gcin (更新)

新版的ubuntu中文輸入法已經換成 ibus。但因為不支援我偏好的注音中文鍵盤排列方式,所以還是習慣使用gcin。

安裝與設定如下:


$ sudo apt-get install gcin im-config
$ im-config (以GUI方式選擇輸入法)




或是


$ sudo apt-get install gcin im-switch


$ im-switch -z zh_TW -s gcin (以手動方式設定)


登出後,再重新登入應該就可以囉。

#

後記:

  • Ubuntu 12.04 內 im-config 似乎取代 im-switch,同時安裝時會產生衝突,只能擇一安裝。
  • 可以執行gcin-tools (或舊版gcin-setup)進行相關設定。
##