顯示文章

這裡允許您檢視這個會員的所有文章。請注意, 您只能看見您有權限閱讀的文章。


文章 - Yamaka

頁: 1 2 [3] 4 5 ... 164
61
平常都都是用不同帳號處理不同的事情
例如寫 java 程式用 jper,寫 c++ 程式用 cpp
本來也都只是寫一些非視窗模式的程式
最近因為要開發一些 GUI 的東西
又不想直接改用桌面這個帳號來寫
所以就想到 ssh 有這功能可用

工作系統為 ubuntu 14.10 + mate 桌面
基本上沒另外做什麼設定
openssh-server 本來就已安裝

確定一下 ssh server 的設定

代碼: [選擇]
$ sudo vim /etc/ssh/sshd_config

X11Forwarding yes
X11DisplayOffset 10

確認後就可以直接連線

$ ssh -X cpp@192.168.xx.xxx

或是

$ ssh -X jper@localhost

連線時只要多加一個『 -X 』就好
登入後可以查看一下環境變數

引用
$ echo $DISPLAY
localhost:11.0

我有另外改了一下 .bashrc 來分辨連線方式
用 -X 連線後看起來像這樣

jper@xub1410d(X11):~$

這樣可以用這個帳號的權限來開 GUI 程式

jper@xub1410d(X11):~$ eclipse&

結果如附圖





視窗標題列後面會顯示目前所使用的身分 (as jper)
在 eclipse 裡使用的家目錄也是 jper 的

這樣就可以繼續用不同的帳號工作 ^___^

PS: 哈~附圖傳不上來啦
(補上圖片了)

62
Linux 討論版 / ubuntu + zfs 設定記憶體使用量
« 於: 2015-06-12 12:34 »
昨天在 ubuntu 裝了 openzfs
用4顆硬碟建立 raid10
剛剛看了一下系統狀態
發現記憶體(15GB free)被吃光光
而且還吃到一點點 swap
我記得有 zfs 記憶使用量的設定
google 了一下,方式如下(限4GB)

引用
$ sudo sh -c 'echo "options zfs zfs_arc_max=4294967296" >> /etc/modprobe.d/zfs.conf'
$ sudo sh -c 'echo "4294967296" > /sys/module/zfs/parameters/zfs_arc_max'

(以下非必要)
引用
$ sudo sync
$ sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'
$ sudo swapoff /dev/sdxx
$ sudo swapon /dev/sdxx

觀察了幾個小時,記憶體限制有作用
或許多少會影響 zfs 的效能
不過至少不會吃光 ram 或吃到 swap
^___^

63
(1)
代碼: [選擇]
for(var item in window) {
  if (item === 'x') {
    console.log(window[item].b1);
  }
}

result:
"b1v"

---

(2)
代碼: [選擇]
console.log($("#js2").attr('class'));
console.log($(".headclass").attr('id'));

result:
"jsclass"
"head1"

以結果來看,應該是可以找到整個 html 文件內的資料

---
(3)
如果知道函數名,可以用

typeof func_name === "function"

來確認函數是否存在

64
代碼: [選擇]
data[1]=eval(data[1]+";");
document.write("x: " + x + "<br>" + x.b1 + "<br><br>");

result:
x: [object Object]
b1v

65
活動/聚會區 / Re: netman的免費Linux課程
« 於: 2015-06-07 16:02 »
辛苦了! <(__)>

雖然沒辦法到現場上課
不過每星期都會看錄影檔

66
『單純數學運算』 用 shell script & php 寫嗎?
要改善效能,如果演算法無法改善
那就改用 c/c++ 嚕 ^_^

67
本來是在 clang 編譯,想說試一下 g++ 是否有支援右值參考,編譯是會過,沒有任何警告或錯誤訊息
不過執行結果卻是大問題 @_____@||

測試碼如下:

代碼: [選擇]
#include <iostream>

int&& func(int&& x) {
  x *= 7;
  std::cout << x << " [&x: " << &x << "]\n";
  return std::move(x);
  // or
  //return static_cast<int&&>(x);
}

void func2(int&& y) {
  std::cout << y << " [&y: " << &y << "]\n";
}

int main() {
  int ival = 3;
  int *pival = &ival;

  int&& rival = func(ival+0);
  //int&& rival = func(std::move(ival));
  rival++;

  std::cout << ival << " [&ival: " << &ival << "]\n";
  std::cout << *pival << " [pival: " << pival << "]\n";
  std::cout << rival << " [&rival: " << &rival << "]\n";
  func2(func(5));
  std::cout << rival << " [&rival: " << &rival << "]\n";
 
  int&& rival2 = func(6);
  std::cout << rival << " [&rival: " << &rival << "]\n";
  std::cout << rival2 << " [&rival2: " << &rival2 << "]\n";
 
  int&& rival3 = func(7);
  std::cout << rival << " [&rival: " << &rival << "]\n";
  std::cout << rival2 << " [&rival2: " << &rival2 << "]\n";
  std::cout << rival3 << " [&rival3: " << &rival3 << "]\n";

  return 0;
}

先是 clang 的結果

引用
$ clang++ -v
Ubuntu clang version 3.5.0-4ubuntu2 (tags/RELEASE_350/final) (based on LLVM 3.5.0)
Target: x86_64-pc-linux-gnu
$ clang++ -O3 -std=c++11 ex015.cc -o ex015
$ ./ex015
21 [&x: 0x7ffc5b136540]
3 [&ival: 0x7ffc5b136544]
3 [pival: 0x7ffc5b136544]
22 [&rival: 0x7ffc5b136540]
35 [&x: 0x7ffc5b13653c]
35 [&y: 0x7ffc5b13653c]
22 [&rival: 0x7ffc5b136540]
42 [&x: 0x7ffc5b136538]
22 [&rival: 0x7ffc5b136540]
42 [&rival2: 0x7ffc5b136538]
49 [&x: 0x7ffc5b136534]
22 [&rival: 0x7ffc5b136540]
42 [&rival2: 0x7ffc5b136538]
49 [&rival3: 0x7ffc5b136534]

執行結果跟預期的一樣,右值參考功能有正常工作
改用 g++ 編譯也 OK(與 clang 同一系統環境)
只是執行結果就.....

引用
$ g++ -v
Target: x86_64-linux-gnu
gcc version 4.9.1 (Ubuntu 4.9.1-16ubuntu6)
$ g++ -O3 -std=c++11 ex015.cc -o ex015
$ ./ex015
21 [&x: 0x7ffce55d8ac4]
3 [&ival: 0x7ffce55d8ac0]
3 [pival: 0x7ffce55d8ac0]
22 [&rival: 0x7ffce55d8ac4]
35 [&x: 0x7ffce55d8ac4]
35 [&y: 0x7ffce55d8ac4]
35 [&rival: 0x7ffce55d8ac4]
42 [&x: 0x7ffce55d8ac4]
42 [&rival: 0x7ffce55d8ac4]
42 [&rival2: 0x7ffce55d8ac4]
49 [&x: 0x7ffce55d8ac4]
49 [&rival: 0x7ffce55d8ac4]
49 [&rival2: 0x7ffce55d8ac4]
49 [&rival3: 0x7ffce55d8ac4]

每次呼叫 func(),x 都會使用相同位址,所以 rival 的值一直都跟著改變
而且正常來說,每次呼叫 func() 時都應該是『配置』新的位置存放 x 值,
rival 與 rival2 指向的位址也就應該要不同

正好手邊有 vc++ 2012 express,順便也測試了一下(code 一樣)

引用
21 [&x: 003AFDDC]
3 [&ival: 003AFDE8]
3 [pival: 003AFDE8]
22 [&rival: 003AFDDC]
35 [&x: 003AFDE0]
35 [&y: 003AFDE0]
22 [&rival: 003AFDDC]
42 [&x: 003AFDE0]
22 [&rival: 003AFDDC]
42 [&rival2: 003AFDE0]
49 [&x: 003AFDE4]
22 [&rival: 003AFDDC]
42 [&rival2: 003AFDE0]
49 [&rival3: 003AFDE4]
請按任意鍵繼續 . . .

執行結果跟 clang 差不多,只差在傳回值最後如果未被參考(func2那裡)
則該位址會被重覆使用,雖然有些微差異,但並不影響執行結果


68
請問各位先進

如果有下面的情形

$ sudo zpool status
代碼: [選擇]
  pool: rpool
config:

        NAME        STATE     READ WRITE CKSUM
        rpool       DEGRADED     0     0     0
          raidz2-0  DEGRADED     0     0     2
            c4d1    DEGRADED     3     5    47  too many errors
            c6d0    ONLINE       0     0     1
            c6d1    ONLINE       0     0     0
            c7d0    DEGRADED     0    30   420  too many errors
            c7d1    DEGRADED    21     0    24  too many errors

errors: No known data errors


READ, WRITE, CKSUM 單純只是 zfs 系統問題
還是硬碟也真的有問題,例如壞軌之類的...
c7d0 拔到 linux 系統用 smartctl 看卻都 ok

$ sudo smartctl -AH /dev/sdb
代碼: [選擇]
smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.5.0-54-generic] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x002f   200   200   051    Pre-fail  Always       -       0
  3 Spin_Up_Time            0x0027   177   176   021    Pre-fail  Always       -       6150
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       28
  5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x002e   200   200   000    Old_age   Always       -       0
  9 Power_On_Hours          0x0032   080   080   000    Old_age   Always       -       14740
 10 Spin_Retry_Count        0x0032   100   253   000    Old_age   Always       -       0
 11 Calibration_Retry_Count 0x0032   100   253   000    Old_age   Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       28
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always       -       27
193 Load_Cycle_Count        0x0032   200   200   000    Old_age   Always       -       0
194 Temperature_Celsius     0x0022   114   096   000    Old_age   Always       -       36
196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   100   253   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always       -       0
200 Multi_Zone_Error_Rate   0x0008   100   253   000    Old_age   Offline      -       0

$ sudo badblocks -vs /dev/sdb
代碼: [選擇]
Checking blocks 0 to 1953514583
Checking for bad blocks (read-only test): done                                                 
Pass completed, 0 bad blocks found. (0/0/0 errors)

所以像上面這棵 /dev/sdb 這樣的資訊,就表示這棵 hdd 是『健康』的?


69
既然有這想法,那就先『學會』來,以後總有機會
如果還沒『學會』,就算機會來了也只是眼前飄過

Linux+Mysql+Apache+Php 的組合已有不少變化
像 DB 有可能改成 MongoDB
web server 有少人改用 nginx
php 的話可能換成 python

加油!!  ^___^

70
不行
輸出的資料json仍不能接收
我再次進行轉換 語法修改如下
import sqlite3
import sys
import json
import datetime
#datetime.datetime.strptime('24052010', '%d%m%Y').date()
##tm = row.datetime.strptime("%Y-%m-%d %H:%M:%S")

db = sqlite3.connect('flag.db')
cursor = db.cursor()
cursor.execute('SELECT datetime as date1,f1,f2 FROM data ORDER BY datetime asc limit 10')
user1 = cursor.fetchone() #retrieve the first row
all_rows = cursor.fetchall()
rowarray_list = []
t = ('datetime','f1','f2')
rowarray_list.append(t)
for row in all_rows:
    print('{0} : {1}, {2}'.format(row[0], row[1], row[2]))   
    t = (datetime.datetime.strptime(row[0], '%Y-%m-%d %H:%M:%S').date(),row[1],row[2])
    rowarray_list.append(t)
j = json.dumps(rowarray_list)

輸出畫面如下
2011-02-08 04:36:15 : 31.6, NULL
2011-02-09 01:37:05 : 30.6, 81.0
2011-02-09 19:02:09 : 22.1, 77.0
2011-02-10 18:21:47 : 21.5, 80.0
2011-02-11 08:42:04 : 23.2, 85.0
2011-02-11 18:32:01 : 28.1, 80.0
2011-02-12 09:42:05 : 31.6, 82.0
2011-02-12 17:42:05 : 25.9, 85.0
2011-02-12 21:42:05 : 22.9, 80.0
Traceback (most recent call last):
  File "flag3.py", line 20, in <module>
    j = json.dumps(rowarray_list)
  File "c:\Python34\lib\json\__init__.py", line 230, in dumps
    return _default_encoder.encode(obj)
  File "c:\Python34\lib\json\encoder.py", line 192, in encode
    chunks = self.iterencode(o, _one_shot=True)
  File "c:\Python34\lib\json\encoder.py", line 250, in iterencode
    return _iterencode(o, 0)
  File "c:\Python34\lib\json\encoder.py", line 173, in default
    raise TypeError(repr(o) + " is not JSON serializable")
TypeError: datetime.date(2011, 2, 8) is not JSON serializable

看錯誤訊息是資料格式 json 不接受
因為 datetime.date 實際上是一個 class

看不懂樓主這一串的目的是什麼?
datetime.datetime.strptime(row[0], '%Y-%m-%d %H:%M:%S').date()

如果只是想得到 “2011, 2, 8” 類似這樣的日期字串
上面那一串改成這樣試試吧

row[0].split(' ')[0].replace('-', ',')

代碼: [選擇]
>>> row[0] = '2011-02-09 01:37:05'
>>> json.dumps((row[0].split(' ')[0].replace('-', ','), 30.6, 81.0))
'["2011,02,09", 30.6, 81.0]'

ps:
第1筆資料的 NULL 也會有問題
建議改資料表欄位預設為 0 就不會出現 NULL

71
架設了一台 VSFTPD 伺服器,匿名的根是在 /var/ftp,

現在我想於 /var/ftp/中建立一個符號連結檔 mydata,連結至 /mydata 目錄:
# ln -s /mydata /var/ftp/mydata

做完後從 client 測試,當登入 ftp 後,用 cd 切換到 mydata 會失敗

這應該是匿名預設就只能在 /var/ftp 中活動,所以連不出去

不曉得有無方法可克服這個問題呢?

ps 如果要整個改變根目錄,用 anon_root 參數可達成,但這不是我要的。

用 mount --bind ?

這篇參考看看(我沒試過 XD

https://radu.cotescu.com/vsftpd-and-symbolic-links/

72
看到上面一串雞同鴨講XD

建議樓主把完整網頁或 js 碼貼上來吧
每隔一陣子總會有人把 javascript 當做是 java
jar 也不是隨便放在網頁裡就能跑起來的

google chrome 跟 firefox 幾乎都是從第1版就開始用
不管是 windows 版或 x-window 版,都沒聽過未支援 js

73
瀏覽起沒有顯示錯誤訊息耶
jQuery外掛是??

jquery 不是 javascript 內建功能,要用 jquery 就要先載入 jquery

http://jquery.com/download/

瀏覽器應該會有回報錯誤訊息
你有開 javascript console 查看嗎?

74
小弟寫了一個小小的jQuery的javascript程式放在網頁html上
在html語法上的<head>..</head>之間加入
<script type="text/javascript" src="http://127.0.0.1:44310/abc.js"></script>
但網頁執行起來無法運行abc.js的動作
請問有需要在<head>..</head>之間另外加入什麼其他語法好讓jQuery的javascript動作嗎?

jquery 外掛有掛上去嗎?
瀏覽器(javascript console)有無回應錯誤訊息?

75
程式討論版 / Re: 單一perl程式消耗大量cpu
« 於: 2014-10-27 13:43 »
一開始 hoyo 老大就給解答了,樓主試過了嗎?

如果因為『空』迴圈 CPU 吃太重
最簡單的解法就是在迴圈裡加 sleep
下面兩個指令(ctrl-c停止)
自己比較看看吧

$ perl -e 'while(1){}'

$ perl -e 'use Time::HiRes qw(usleep); while(1){usleep(500);}'

76
各位大大您們好,

如打包時的檔案名稱包括當日的日期,請問有否例子可以參考呢?

謝謝 ^^

這個版的第一頁下面就有一個例子
問問題前都沒先找找舊文章 = ="

77
我希望可以自我學習如何操作啦 :P
我也希望不要一直倚賴公司的人

『如果』公司同意你自己動這些設定、設備
而且就算內外網都掛了也不會影響公司作業
然後自己也有網路相關基本知識.......
那就動手吧  ;D

78
請教各位高手,我在 ubuntu 14.04.1 中要安裝無蝦米,
明明我已經切到 root 身份,
但是安裝時卻有如下錯誤訊息,
顯示沒有足夠權限存取 /usr,
請問,這個問題要如何解決? 謝謝!

代碼: [選擇]
root@Linux-PC:/home/myuser/下載/boshiamy-ibus# sudo ./ibus-install-boshiamy.sh
...刪...

既然已經直接切換到 root, 怎麼還用 sudo 跑?
不用 sudo 直接跑呢?

如果還是不行,那到下面網址下載 deb 回來, 然後在檔案管理直接 double click 安裝

https://github.com/vicamo/ibus-table-boshiamy/downloads

79
呃~~~呃~~~~~~

好吧,第一時間看到這個標題
我以為是跟 linux 有關的活動
而且還認真詳細的看文章內容
直到看到....

『無論是鑑賞時尚的車身、耳聽低鳴的引擎聲......』

看來是我誤會了... = =||

80
先想想 PC 對 PC 可以怎麼做
再應用到 Android 對 PC 吧

也就是說
用JAVA對LINUX下指令完全適用於ANDROID囉?

如果是要在自己寫的 app 裡連線到 linux 主機下指令
先查看看 java 有沒有支援 ssh 或是 telnet 連線的 api
如果沒有現成 api 那就要自己用 soket 建立連線登入 linux
或者看樓主的需求是什麼,也許還有其他變通方式...

81
#include <iostream>
#include <string>

using namespace std;
class TT{
        public:
        int s;
        TT(int s = 2){
                this->s = s;
        }
        void p(){
                cout << this->s << endl;
        }
};

int main(){
        TT *a = new TT();
        a->p();
        delete a;
        return 0;
}

以上程式可以執行,沒有問題
我想提問的是
我要把類別宣告和定義分開
但不知道正確寫法
怎麼寫都是編譯錯誤

希望高手幫忙解答
感恩

你分開是怎麼寫的?
錯誤訊息是什麼?
include 檔有沒有放進主檔裡?
namespace 位置對不對?

82
git 在commit 時可以寫說明,請問在add 檔案進入staging 狀態時可以先寫說明嗎?
找不到可以這樣做的方式? 不知道各位大大 有沒有人知道? ???

看指令說明,應該是沒這功能

假設可以,每次 add 也會覆蓋掉上次的說明吧  ::)
如果這樣也無所謂,那變通方式可以用日期時間+說明字串為檔名另外建檔
然後也一起 add 進去,這樣在查看時也可以看到說明  :D

83
小弟目前在套用網路上某人所寫, 用來分析郵件收送數量並給 cacti 繪製的 perl 程式, 除了 mess_rejected 一直
為 0 沒有加總, 其它均正常有數值及加總.

有試著將 if((($line=~/NOQUEUE/) && ($line=~/reject\=/)) || ($line =~/rejecting/)){
改為
if($line=~/reject/){
kill 及重新執行, 但仍是數值一直為 0  ... ( 用 tail 去看 maillog 可以看到有 NOQUEUE 及 reject )

請問如何除錯呢 ??

另外寫個只有這個條件過濾或是直接命令列用這個條件過濾看看有沒有東西出來?

84
我是 Linux 新手 正在學習中
想用 日期字串作為檔名
下指令 如 cp test.log 20140807.log
知道 用 date '+%Y%m%d" 可取得日期字串
但還在研究如何 讓它成為 一個 file name 20140807.log 可以讓 cp 指令使用
懇請各位大大們指點一二

試試將 date 那行指令用 $() 或是 ``(tab鍵上面那個) 包起來放到 cp 指令裡

85
那如果不安裝virtualbox的情況下,可以在已有windows的情況下安裝linux嗎?

現在真的不流行裝這種雙系統了,既然是新手,還是用vm練習吧
不然,過沒多久,可能要上來問怎麼救原來的win7系統...

用vm練習有個好處,萬一vm裡的linux系壞了
還可以在host系統一邊上網查資料一邊處理vm裡的系統
還有,在vm裡操作也不怕不小心弄壞原來硬碟裡win7資料

86
測試環境: ubuntu 12.04 + mate desktop 1.6

目標是要能在桌面的 terminal shell script 抓桌面上任意點的顏色值
有找到 grabc 套件(ubuntu可直接用 apt-get安裝),但是這個指令需要
用滑鼠點取要抓的點,不能直接提供座標資料來抓,這樣就不合需求了..

本來想抓 grabc 的原始碼來改,不過有點懶,而且不同環境又還得另外編譯
於是就想找看看有沒有用 perl 寫的,結果只找到 python 的版本...

http://stackoverflow.com/questions/1605350/how-can-i-grab-the-color-of-a-pixel-on-my-desktop-linux

這頁有兩種版本,下面的版本抓點速度有比較快

最近在用 perl 弄東西,所以就順便將它用 perl 改寫

代碼: [選擇]
$ cat grabc.pl

#!/usr/bin/perl -w

use strict;
use warnings;
use Gtk2 '-init';

my ($x, $y, $fmt) = @ARGV;

die "Usage: grabc x y [d]\nd: result decimal, default hex.\n" if !defined($x) || !defined($y);

my $rootW = Gtk2::Gdk->get_default_root_window();
my $pixbuf = Gtk2::Gdk::Pixbuf->new('rgb', 0, 8, 1, 1);
$pixbuf->get_from_drawable($rootW, $rootW->get_colormap(), $x, $y, 0, 0, 1, 1);
my @pixels = $pixbuf->get_pixels();
$fmt = $fmt && lc($fmt) eq 'd';
my @rgb = unpack(($fmt ? 'C*' : 'H*'), $pixels[0]);
print(($fmt?'':'#'), substr(join(' ', @rgb), 0, ($fmt?-1:-2)), "\n");

加執行權限

代碼: [選擇]
$ chmod +x grabc.pl

$ ./grabc.pl 621 10
#3ae292

or

$ ./grabc.pl 621 10 d
58 226 146

常常用到的話,cp 到環境路下比較方便

代碼: [選擇]
$ sudo cp grabc.pl /usr/local/bin/grabc
$ ls -l /usr/local/bin/grabc
-rwxr-xr-x 1 root root 862 Jul 31 15:55 /usr/local/bin/grabc

$ grabc
Usage: grabc x y [d]
d: result decimal, default hex.

另外我有時會用其他身分操作, 試過將 /usr/local/bin/grabc 改 owner 並加上 SUID
不過其他身分還是沒法直接使用

代碼: [選擇]
$ sudo su xxxxx
$ grabc
No protocol specified
No protocol specified
Gtk-WARNING **: cannot open display: :0 at /usr/lib/perl5/Gtk2.pm line 138.

如果加 sudo 就OK了

代碼: [選擇]
$ sudo grabc 123 123 d
237 236 235

87
system: ubuntu 14.04 server x64 + php 5.5.9

這次是在編譯 php_cconv 這支程式時出現錯誤訊息

代碼: [選擇]
$ sudo make
.....

/usr/local/src/cconv-php-0.6.4/php_cconv.c:10:1: error: unknown type name 'function_entry'
 static function_entry cconv_functions[] = {
 ^
.....
make: *** [php_cconv.lo] Error 1

之前在 ubuntu 12.04 + php 5.3.10 環境下編譯沒問題啊
於是就抓 php 原始碼來編看看,因為之前我有編過 pdo
這次也試試編 pdo

代碼: [選擇]
$ cd /tmp
$ wget http://tw1.php.net/distributions/php-5.5.14.tar.gz
$ cd /usr/local/src
$ sudo tar zxf /tmp/php-5.5.14.tar.gz
$ cd php-5.5.14/ext/pdo
$ sudo phpize
$ sudo ./configure --with-php-config=/usr/bin/php-config
$ sudo make
.....

Build complete.
Don't forget to run 'make test'.

$ ls -l modules
total 436
-rw-r--r-- 1 root root    926  7月 14 11:57 pdo.la
-rwxr-xr-x 1 root root 441062  7月 14 11:57 pdo.so

編譯成功,查看一下是否有使用 function_entry

代碼: [選擇]
$ grep "function_entry" *.c
pdo.c:const zend_function_entry pdo_functions[] = {
pdo_dbh.c:const zend_function_entry pdo_dbh_functions[] = {
pdo_dbh.c: const zend_function_entry *funcs;
pdo_stmt.c:const zend_function_entry pdo_dbstmt_functions[] = {
pdo_stmt.c:const zend_function_entry pdo_row_functions[] = {

嗯~ 要改用 zend_function_entry

---
代碼: [選擇]
$ sudo vim php_cconv.c

#include <php.h>
#include <cconv.h>

#include "php_cconv.h"
#ifdef HAVE_CONFIG_H
        #include "config.h"
#endif

//加上這行
#define function_entry zend_function_entry

static function_entry cconv_functions[] = {
    PHP_FE(cconv, NULL)
    {NULL, NULL, NULL}
};

也可以直接改 function_entry  那行
不過如果有多個地方要改的話
還是用 define 比較省事
也不怕會漏掉沒改到

如果有其他程式要改
就另外建立 h 檔吧

存檔後再 make 一次
這樣就能順利編譯了
^_^


88
好奇試了一下

ubuntu 12,04 新安裝的英文環境桌面

代碼: [選擇]
$ dpkg --get-selections|grep ttf-wqy-zenhei
安裝語言支援(我的習慣是同時勾選正體+簡體+日文這3個)
裝完後...

代碼: [選擇]
$ dpkg --get-selections|grep ttf-wqy-zenhei
ttf-wqy-zenhei install

12,04 會自動安裝 ttf-wqy-zenhei
在 14.04 同樣裝上面3個套件則不會自動安裝 ttf-wqy-zenhei

89
ubuntu14.04 已釋出3個月,最近開始安裝測試環境來用
不過卻接連碰到幾個雖然小卻是大困擾的問題

一般來說,現在環境不管是哪一種語系界面
中文顯示應該已經很少會出現亂碼的機會
我的桌面環境習慣都是設定為英文界面
一直到 12.04 版,中文顯示都很正常
14.04 常用的套件大致上都也正常
目前就只有 chromium 中文都是亂碼

並不是網頁內容亂碼
而是 bookmark、分頁標題等等這些
如果系統桌面切換為中文就沒亂碼
換回英文界面則還是亂碼
網路爬了幾天也沒找到解法
後來在ubuntu cn論壇找到類似問題

http://forum.ubuntu.org.cn/viewtopic.php?f=8&t=461481

原貼文裡說要裝3種字型檔
經測試後,其實只要裝 ttf-wqy-zenhei

代碼: [選擇]
$ sudo apt-get install ttf-wqy-zenhei
然後重開瀏覧器就可以正常顯示中文書籤跟分頁 ^^

90
Linux 討論版 / Re: regexp 中 extended RE 的問題
« 於: 2014-06-21 15:22 »
centos 5.4 x64 測試是正常的, centos 6.0 x64 就不行了

只試 ‘^[A-Z]’ 或 ‘^$’ 則正常,或是 ‘^[A-Z] |(非 ^$)’ 也都正常

^$ 跟其他的組合就無效,應該是 bug 吧!

頁: 1 2 [3] 4 5 ... 164