2014年12月29日 星期一

[胡言亂語] Ubuntu 12.04 to 14.04 凸

以後誰敢叫我升級到 Ubuntu 14.04, 我一定會打爆他的頭!!!

首先 apache 爛掉, 因為 config 全都要改過, 見這篇
然後重啟會遇到一堆莫名其妙的錯誤, 例如
 * Restarting web server apache2                                                                               [fail] 
 * The apache2 configtest failed.
Output of config test was:
apache2: Syntax error on line 204 of /etc/apache2/apache2.conf: Syntax error on line 1 of /etc/apache2/mods-enabled/authz_default.load: Cannot load /usr/lib/apache2/modules/mod_authz_default.so into server: /usr/lib/apache2/modules/mod_authz_default.so: cannot open shared object file: No such file or directory
Action 'configtest' failed.
The Apache error log may have more information.
等等省略一萬種錯誤...

最後是砍掉重鍊才行, 但是砍掉真的就可以重鍊嗎? 當把 VirtualHost 的 config 檔放到 sites-available 又出現奇怪的錯誤, 例如 sudo apache2 -V
[Fri Nov 29 17:35:43.942472 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_LOCK_DIR} is not defined
[Fri Nov 29 17:35:43.942560 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_PID_FILE} is not defined
[Fri Nov 29 17:35:43.942602 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_RUN_USER} is not defined
[Fri Nov 29 17:35:43.942613 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_RUN_GROUP} is not defined
[Fri Nov 29 17:35:43.942627 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Fri Nov 29 17:35:43.947913 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Fri Nov 29 17:35:43.948051 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Fri Nov 29 17:35:43.948075 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_LOG_DIR} is not defined

AH00526: Syntax error on line 74 of /etc/apache2/apache2.conf:
Invalid Mutex directory in argument file:${APACHE_LOCK_DIR}
但神奇的是還可以啟動成功... 正常的應該要長這樣

不過我還是有加上 ServerName localhost, 參考這篇
有關 config, 這篇有不錯的比較, 可以快速的看要如何從 2.2 改成 2.4

接著就是 mysql 悲劇, 記得一定要先備份, 包括 /etc/mysql/my.cnf 和 /var/lib/mysql/

安裝 mysql-server5.5 和 mysql-server5.6 來回不下快二十次, 總是裝到一半就卡住, 出現
Warning] Using unique option prefix key_buffer instead of key_buffer_size is deprecated and will be removed in a future release. Please use the full name instead.
修改 my.cnf, 參考這篇
[mysqld]
...
key_buffer     = 16M
myisam-recover = BACKUP
改成
[mysqld]
...
key_buffer_size = 16M
myisam-recover-options = BACKUP
還有遇到
[Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
在 my.cnf 加上 explicit_defaults_for_timestamp = 1 就可以避掉, 參考這篇

上面兩個修改可參考這篇的結果

sudo apt-get purge mysql-server mysql-client-5.5 mysql-common mysql-server-5.5
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt-get install mysql-server-5.6 mysql-client-5.6
上面指令最後再重開機以後神奇的不會卡住了!!

裝完 mysql 以後再看我的 wordpress, 但因為砍得太乾淨了, 還要再加裝 php5-mysql 才能啟動
並且一直要我重新安裝 wordpress, 最後才發現 mysql 目錄的權限要改成 mysql:mysql

最後的最後, 大師兄就回來了, 我 6 小時的青春...

最後的最後的最後,又發現 .htaccess 爛掉了, 要改幾個地方 主要是 /etc/apache2/apache2.conf 裡面的預設值要改掉
<Directory /var/www/>
         Options Indexes FollowSymLinks
         AllowOverride All
         Require all granted
</Directory>
再確認有啟用 a2enmod rewrite, 就搞定了 詳細用法看這篇

以後誰敢叫我升級到 Ubuntu 14.04, 我一定會打爆他的頭!!!
如果有人吃飽太閒想要裝裝看, 網路上一堆教學, 要很有愛才行阿

reference:
* E: Mysql-server-5.5 Installation Error [closed] MySQL shows warning Using unique option prefix key_buffer instead of key_buffer_size is deprecated and will be removed in a future release. Please use the full name instead

2014年12月25日 星期四

[RPi] emulationstation 2 gpio input problem

先筆記一下:

舊版的 RetroPie 可以用 python-uinput, 新版的就不行, 有人也有痛過了
RetroPie 1.9 works, RetroPie 2.x is not work

要改用 python-evdev 了, 晚點試吧, 投影片要改了 :~

reference: emulationstation 2 gpio input problem

2014年12月7日 星期日

[Tips] 在 Ubuntu 10.04 安裝 Python 2.7

既上次發生的移除 Python 慘劇後, 今天我又想要挑戰更新 Python 2.7 了

隨便逛逛看到這篇, 感覺用的人很安心, 就來試試看吧

$ python -V
Python 2.6.5
$ curl -kL https://raw.github.com/utahta/pythonbrew/master/pythonbrew-install | bash
$ . $HOME/.pythonbrew/etc/bashrc
$ pythonbrew install 2.7.2
$ pythonbrew switch 2.7.2
Switched to Python-2.7.2
$ python -V
Python 2.7.2
再來是搞定 pip
原來用 pip 安裝的模組預設會在 /usr/lib/pymodules/python2.6 下, 所以即使更新到 Python 2.7 以後, 想要更新模組都會出現
Requirement already satisfied (use --upgrade to upgrade): xxxx in /usr/lib/pymodules/python2.6
做法就是先將 /usr/bin/python 的 alias 換成 Python 2.7, 再移除舊版的 pip, 再下載安裝 pip 即可
ls -al /usr/bin/python*
sudo rm /usr/bin/python
sudo ln -s /home/USER/.pythonbrew/pythons/Python-2.7.2/bin/python /usr/bin/python
sudo apt-get remove --purge python-pip
wget --no-check-certificate https://raw.github.com/pypa/pip/master/contrib/get-pip.py
/usr/bin/python get-pip.py
reference: Python 2.7 on Ubuntu