顯示具有 Linux 標籤的文章。 顯示所有文章
顯示具有 Linux 標籤的文章。 顯示所有文章

2009年9月28日 星期一

undefined reference to `pow'

今天重灌了ubuntu

想要寫些程式的時候出現了下面的錯誤訊息

undefined reference to `pow'
也不只這個,凡是跟數學函式相關的使用就會出現這類錯誤
像是undefined reference to `sqrt'等等

但是我有確實的include <math.h>,卻仍然找不到

而後來google了一下,發現可以從gcc下手解決
我把原來的
gcc -o xxx xxx.c
加上-lm 如下
gcc -lm -o xxx xxx.c
就成功解決這個問題

再找這問題的時候額外的一個問題
警告: 隱含宣告與內建函式 「printf」 不相容
這是因為從新安裝的時候沒有安裝包含lib的套件
所以只要輸入下面指令安裝就可以解決

sudo apt-get install build-essential

2009年9月10日 星期四

window中文網頁移植到Linux變成無法解讀

今天把一些網頁從windows上轉移到Linux上的時候
部分網頁發生變成亂碼的情況,後來看了一下
windows上的網頁都是big5編碼,而Linux上則是utf-8
但是這種情況我加上header
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
一點用都沒有

後來找了些資料,發現Linux上有轉碼的指令

iconv -f [fromcode ]-t [tocode] [file]


透過這種編碼指令可以替我解決這種部分網頁編碼問題
iconv -f big5 -t utf8 index.php > index_utf8.php

參考資料

2009年9月9日 星期三

Apache:You don't have permission to accesson this server.

今天幫別人用Linux建帳號的時候
須要每個user都有屬於自己專屬的www家目錄,很幸運的apache就有這種功能了

先去找apache的設定檔 /etc/httpd/conf/httpd.conf

去裡面尋找UserDir的設定值

<IfModule mod_userdir.c>
........
UserDir public_html

</IfModule >

一般來講預設都是public_html,也就是說只要user家目錄下有個public_html目錄
那就會是他的wwwroot目錄
一般來說都是要自己建,假設我有個帳號Tom
那user家目錄就是
/home/Tom
我可以用mkdir去建我要的public_html
mkdir /home/Tom/public_html
但是我要存取的時候出現了錯誤訊息
You don't have permission to accesson this server.
上網google一下資料,看到人家說要修改

<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all

< /Directory >

參考資料

把deny改成allow,不過後來發現早就設定好了 所以上面那招並沒解決問題
後來想想應該是權限問題,但是用ls -al 查了一下,我public_html跟其下權限都已經是755了

後來去看了一下鳥哥的文章,原來是使用者家目錄本身也要設定成755
新建的user帳號的家目錄權限是drwx----- ,必須修改成drwx-xr-x才能讓apache存取該目錄
所以建public_html正確順序應該如下

root狀態

~]$ cd /home/Tom
~]$ mkdir public_html
~]$ chmod 755 public_html
~]$ chmod 755 /home/Tom


user狀態


~]$ cd ~
~]$ mkdir public_html
~]$ chmod 755 public_html
~]$ chmod 755 ~

2009年9月6日 星期日

ubuntu 9.04 PCMAN X 亂碼問題

今天剛灌好ubuntu 9.04來玩
看到他很貼心的提供了BBS工具,想說上個ptt
結果上去看到一堆方方塊塊的亂碼

後來找到解決方法就是開啟上方menu的[檢視]->[字型]
選擇[AR PL Ukai TW]
就能正常顯示中文了



Linux設定DNS

之前windows要設置DNS很容易
不過Linux下要設定要去修改文件/etc/resolv.conf
vi /etc/resolv.conf
最簡單的設定

nameserver xxx.xxx.xxx.xxx #第一個DNS Server位置
nameserver xxx.xxx.xxx.xxx #第二個DNS Server位置


我在裝ubuntu 9.04的時候/etc找不到resolv.conf文件,到是有一個resolv.conf資料夾
不過要設置DNS還是一樣去設/etc/resolv.conf,自己創造一resolv.conf個就可以了

題外話,在玩Ubuntu 9.04的時候,桌面特效的menu不見了
要使用的話要再去安裝,安裝指令如下
sudo apt-get install compizconfig-settings-manager
之後就會出現compizconfig-settings-manager讓我們使用桌面特效了
參考資料

vsftpd:530 This FTP server is anonymous only.

今天實驗室server重開的時候 FTP忽然登不進去了,沒辦法使用一般帳號登入 只能用匿名帳號登入
錯誤訊息如下
530 This FTP server is anonymous only.
後來google了一下資料,要去修改/etc/vsftpd/vsftpd.conf
看到有說要增加

pam_service_name=vsftpd

或是

local_enable=YES

以我的情況,我是屬於後者 我查了vsftpd.conf
local_enable被設置成NO(有的人是被#註解調)
local_enable要設置了才能讓機器上的實體帳號才能登入

可是設置之後卻還是不能登入,server也restart過了
後來在找了一下資料,我的vsftpd是被xinetd啟動的,xinetd的設置檔是放在/etc之下
所以我把/etc/vsftpd/vsftpd.conf整份複製到/etc/vsftpd.conf就可以了
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd.conf

但是啟動後出現另一個錯誤訊息
500 OOPS: could not bind listening IPv4 socket
查了一下原因是因為port 21衝突,21 port被重複使用了

我之前用/etc/init.d/vsftpd去啟動了vsftpd,但是xinetd也啟動了vsftpd
關掉其中一個就好了,我是選擇關掉xinetd啟動那個
輸入

vi /etc/xinetd.d/vsftpd

修改xinetd的vsftpd設定


# default: on
# description:
# The vsftpd FTP server serves FTP connections. It uses
# normal, unencrypted usernames and passwords for authentication.
# vsftpd is designed to be secure.
service ftp
{
socket_type = stream
wait = no
user = root
server = /usr/local/sbin/vsftpd
# server_args =
# log_on_success += DURATION USERID
# log_on_failure += USERID
nice = 10
disable = yes
}


把disable設定成yes,之後輸入
/etc/init.d/xinetd restart
重新啟動服務就可以了

2009年3月11日 星期三

ubuntu安裝JRE來用eclipse

因為作業需求用Linux寫c++
我之前ubuntu明明可以使用eclipse寫c++
但是這次從新安裝後就不行
原來是需要JRE跟g++
之前安裝ubuntu有用懶人包 他已經幫我裝好了
但是這次我必須自己裝
因為懶人包會改我的source.list 讓很多東西都怪怪的
所以還是自己裝安心點
安裝jre
sudo apt-get install sun-java6-jre sun-java6-jdk
輸入指令後就會安裝
之後再輸入以下指令更新jvm即可
sudo update-alternatives –config java
之後再用

sudo apt-get install g++
sudo apt-get install g++ build-essential



來安裝g++套件
值得一提的是 是用eclipse開發c++強迫一定得用cpp副檔名
否則會有大大小小奇怪問題

2009年1月31日 星期六

編譯sctp程式跟再solaris上編譯網路程式

再linux寫好的程式拿到solaris的時候通常都有怪怪的問題
最常見的就是編譯網路程式不通過
一般我們再linux下編譯程式都是用

gcc -c xxx.c

gcc -o XXX xxx.o

現這樣先把.c檔編譯程目的檔 再把目的檔轉成執行檔
但是如果再solaris下編譯 為了能使用網路函式庫
再編譯程執行檔時要加上 -lsocket -lnsl

gcc -c xxx.c

gcc -o XXX xxx.o -lsocket -lnsl


而另一問題 再我們用到sctp函式庫的時候 編譯必須加上 -lsctp

gcc -c xxx.c

gcc -o XXX xxx.o -lsctp

再solaris則是

gcc -c xxx.c

gcc -o XXX xxx.o -lsocket -lnsl -lsctp

ubuntu下安裝sctp的函式庫

之前要寫SCTP的時候
發現ubuntu下拿掉了SCTP函式庫
原來是因為再8.04版 sctp有安全上的疑慮
這時後我們就要人工來安裝sctp的函式庫
開啟終端機後輸入
sudo apt-get install libsctp-dev lksctp-tools
就大功告成了

ubuntu設定ADSL

開啟終端機後輸入
sudo pppoeconf
之後就會開啟pppoe的設定程式

ubuntu設定固定ip

開啟終端機後輸入
sudo ifconfig eth0 xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx
再輸入
sudo route add default gw xxx.xxx.xxx.xxx
第1行設定網卡(eth0)的ip跟子網遮罩
第2行設定預設閘道

ubuntu安裝gcin輸入法

1. 於/etc/apt/sources.lst 加入這行
deb http://www.calno.com unstable main
2. sudo apt-get update;sudo apt-get install gcin (安裝gcin)
3. sudo im-switch -s gcin (下次登入即可使用gcin)
4. wget http://edt1023.sayya.org/misc/noseeing-6.tar.gz (下載無蝦米表格檔)
5. tar zxvf noseeing-6.tar.gz
6. sudo cp noseeing.gtab /usr/share/gcin/table/

2007年5月31日 星期四

無法存取GDM 設置檔 等bbs文章

--一般來說是比較詳細的指令 而-是簡寫
像是--recursive 跟 -r 的意義一樣之類
-- 為 prefix 的參數通常是為了怕被解釋成很多分開的參數

使用指令
gdmsetup
-----------------------
ubuntu升級的問題

更改sources.list

gksudo nautilus-從圖形介面登入root
sudo synaptic
sudo gedit etc/apt/sources.list
-------------------------
安裝 gcin 中文輸入法
在 /etc/apt/sources.list 加入:
deb http://apt.debian.org.tw unstable main
deb http://chuany.net/~asho/debian unstable main
然後執行 apt-get update ; apt-get install gcin

非官方的 apt 安裝方式(套件較新,但沒有 deb-src)
請在 /etc/apt/sources.list 加入:
deb http://www.calno.com unstable main
一樣執行 apt-get update ; apt-get install gcin 即可亦可用瀏覽器或其它工具到此處下載:http://www.calno.com/moto/gcin

ubuntu 7.04 有像GHOST般的備份系統軟體嗎

要clone Linux的話,還是建議用clonezilla, partimage之類的東西,ghost能不要用最好不要用,畢竟有時候boot loader就讓人搞死。還有, ghost不支援reiserfs, xfs, jfs以及LVM等等...這些在Linux下還蠻常見的就是了,尤其LVM,現在很多套件預設就是用LVM來做。
試試這一個http://clonezilla.nchc.org.tw
http://clonezilla.sf.net尤其是Clonezilla Live

2007年5月29日 星期二

重安裝ubuntu的核心

這幾天因為顯示卡驅動問題一直搞不定,在不斷重裝的程中發現似乎跟核心有非常大的關係,於是心想,如果有一天我不小心把核心全部給移掉了,是不是再也開不了機了…這個想法在剛剛忽然的…發生了,原本是因為已經安裝太多版本的核心想一次全部移掉用*來移比較快,在出現警告時我選"否"保留目前的核心,可是重開機後還是被移掉了(之前有過一次經驗是選否會保留),現在/boot裡面除了grub以外什麼都沒有…開櫟也只會出現grub>這樣還有救嗎PS.我現在是用LiveCD+網上倉頡上來求救的
5/28 16:27:59
工具箱


用 Live CD , chroot 模式進去看看,然後 sudo apt-get install linux-image-2.6.xxx 補安裝kernel 進去就可以。