GPG Error for apt-get

apt-get 發生 GPG Error 的處理方式.

轉載自: GPG error: for apt-get

錯誤訊息

W: GPG error: ftp://www.hk.debian.org unstable Release: 
    The following signatures couldn't be verified
    because the public key is not available: 
    NO_PUBKEY F1D53D8C4F368D5D NO_PUBKEY 010908312D230C5F
W: You may want to run apt-get update to correct these problems

解決方法:

$ gpg --keyserver wwwkeys.eu.pgp.net --recv-keys F1D53D8C4F368D5D
$ gpg --armor --export F1D53D8C4F368D5D | apt-key add -
$ gpg --keyserver wwwkeys.eu.pgp.net --recv-keys 010908312D230C5F
$ gpg --armor --export 010908312D230C5F | apt-key add -
$ apt-get update

感謝 Range 大師告知, 下述兩個步驟即可解決此問題 🙂

$wget http://ftp-master.debian.org/ziyi_key_2006.asc
$apt-key add ziyi_key_2006.asc

閱讀全文〈GPG Error for apt-get〉

PHP 截字、斷字專用 function

在寫網頁的時後常會遇到 80 個字要截字, 然後超過 80 字加 "...", 未滿 80 字不加.. 等等之類的問題.

之前用 substr 的寫法如下:

$string = strip_tags($string); // 先清掉 html tag, 以免 html tag 被破壞
$string = mb_substr($string, 0, 80, 'UTF-8');
$string .= (mb_strlen($string, 'UTF-8') > 80) ? '...' : '';

PHP 有支援很方便的 function 可以直接達到此功能.

$string = strip_tags($string);
$string = mb_strimwidth($string, 0, 80, '...', 'UTF-8');

在 UTF-8 的環境算字數用 strlen 或 mb_strlen 都不是很準, 所以可以用另一個做法, 算字的寬度, 也是個不錯的做法

echo mb_strwidth($string, 'UTF-8'); // 算字寬度

閱讀全文〈PHP 截字、斷字專用 function〉

Perl 文字 / 字串 取代(Regex)

感謝 洪朝貴 老師 寫的 Regular Expression.

老師的教導, 而學生當時沒有好好學習.. 需要用到時才偷偷的溜回去看老師的網頁..

真是慚愧... 慚愧之餘.... 還是趕快把語法記下來.. :p

  • 取代法1: perl -pe 's/<?/<?php/g' 檔名
  • 取代法2: perl -pe 's/<?/<?php/g' action.php > action-new.php
  • 取代法3: perl -i -pe 's/<?/<?php/g' `find . -iname '*htm*'`

取代法3 後面的 find.. 可以改用其它你想改的檔名(ex: 改成 *.php), 以上三個範例都是要將 <? 改成 <?php 的做法..

取代法3 能將所有目錄中.你想取代的檔案都取代到(靠自己多嘗試學習吧!!)

此命令是要將 InnoDB 取代成 MyISM 並將原始檔案備份成 filename.sql.bak

perl -i.bak -pe 's#InnoDB#MyISAM#g' filename.sql

結婚 2006年1月21日

結婚果然會忙到不可開交, 來簡單記錄一下經過,

  • 1/20 Pm 11:00 開車高雄, 到彰化把老婆放下, 再開到高雄時是 Am 5:30
  • 1/21 Am 5:30 緊接著去天公廟拜拜, 兩個小時(依習俗拜, 再燒金紙)
  • 1/21 Am 7:30 回到家整理要迎娶的東西, 8:30 出發
  • 1/21 Am 11:30 到彰化迎娶, 再接著一堆儀式、吃飯.
  • 1/21 Pm 1:30 從彰化迎娶完成, 出發回高雄(趕著 3:30 要回到家)
  • 1/21 Pm 3:25 差 5分鐘就來不及了, 幸好來的及到.
  • 1/21 Pm 5:45 到漢王準備
  • 1/21 Pm 10:00 回家休息
  • 1/22 Am 2:00 東西整理好準備睡覺
  • 1/22 Am 9:00 起床準備回台北補請需要的東西, 10:30出發
  • 1/22 Am 12:30 到彰化, 回門儀式(就是要吃個飯)
  • 1/22 Pm 1:30 從彰化出發
  • 1/22 Pm 5:15 在重慶北路交流道下去, 另外找人先載老婆去化妝
  • 1/22 Pm 5:30 到台北汐止家(塞車 :~), 趕緊搬喜餅和酒
  • 1/22 Pm 6:15 還是拼到古亭澎園請客(新娘 6:30 才化好妝到場)
  • 1/22 Pm 10:30 回到家裡準備度過辛苦的兩天

然後從結婚忙完, 1/23請一天假, 去桃園一堆地方跑一天, 把銀行該處理的事情都解決, 1/24 就繼續回公司趕案子, 今天總算有點時間抽出時間來為此行程做個記錄, 其它等過完年再說吧~

閱讀全文〈結婚 2006年1月21日〉

拿 RAM 當硬碟來用(RAM Disk)

臨時想要做個 RAM Disk, 就去翻以前寫的文章, 發現以前的 Blog 寫的真的是很亂, 還是重新整理一下好了.

    1. 目前的作法如下:
  • 首先在/dev/shm建個tmp文件夾,然後與實際/tmp綁定
  • mkdir /dev/shm/tmp
  • chmod 1777 /dev/shm/tmp
  • mount --bind /dev/shm/tmp /tmp
    1. 方法2:
  • mkdir /mnt/ramfs
  • vi /etc/fstab
  • none /mnt/ramfs tmpfs defaults 0 0
  • mount /mnt/ramfs
  • 這樣就可以用這個 ramfs 來放一些有的沒有的, 可 man mount, man fstab
    1. 方法3:
  • mount -t tmpfs -o size=200m none /mnt/tmpfs
  • 200m 是 200Mb 的意思, 詳情請看 man mount 裡的 tmpfs
    1. 方法4:
  • 設定 /etc/default/tmpfs default shm 大小(系統會自動用此值去當硬碟)
  • 設定 /etc/fstab: tmpfs /tmp tmpfs size=100m,mode=1777 0 0 設讓 RAM 掛 100Mb 在 /tmp
  1. 方法5:(我目前都用此方法)
    • 直接設定 vim /etc/fstab 寫入下面那行
    • tmpfs /tmp tmpfs size=100m,mode=1777 0 0
    • # 設讓 RAM 掛 100Mb 在 /tmp
    • 註:2022年 Ubuntu 預設這種設定會 mount 在 root 下,可以增加 UID來解決視窗都會跳出警告訊息的狀況
    • tmpfs /tmp tmpfs size=100m,mode=1777,uid=1000 0 0
  2. 其它方法: 可參見下面連結, "有趣的 tmpfs" 中, 有提供很多更好用的方法

參考文件:

閱讀全文〈拿 RAM 當硬碟來用(RAM Disk)〉

停止crontab的寄信通知

Crontab 在執行時, 只要營幕有任何標準輸出, 就會轉成信件寄出通知,初期要 Debug用時還不錯, 但是久了後就很煩, 就想把他丟到 /dev/null 或 改寄到其它地方去, 但是 /dev/null 丟了好多次都沒有用, 才發現到原來是少了 2>&1, 完整命令如下:

於設定時將標準輸出導到 /dev/null

0 * * * * script_name > /dev/null 2>&1

將信件改寄到其它地方, MATILTO="", (不過 "" 的話, 我不知道會寄到哪邊去)

於 Script 最前面加上 MAILTO=""

閱讀全文〈停止crontab的寄信通知〉