[原创]Linux应用心得(2007/12/04版)

上一篇 / 下一篇  2007-12-27 17:02:57 / 精华(1) / 个人分类:应用技巧

查看( 387 ) / 评论( 3 )
写这篇文章是为了方便自己,也同时为了方便他人。

目前的开源软件盛行,很多的README文档都是以英文的形式出现,很多懒人不愿意去读此类的文章,所以遇到问题也不会知道怎么去解决。

在这之前,《linux宝库》的站长陈绪先生的《linux一句话》已经概括得很经典,而我追求的是linux中的FAQ形式,只要你有心,没有解决不了的问题。

Q00001:
当修改/etc/fstab文件时,因为修改错误而无法启动,这时进入的急救模式只是可读状态,该怎么解决此类问题?
A00001:
使用mount重载系统分区,使其挂载为可写状态,然后修改/etc/fstab文件,具体挂载方式为:

    fdisk -l
    mount -o mount,rw /dev/hda1 /mnt


Q00002:
有时候换了环境或者网络,发现sendmail与sm_client邮件发送系统启动很慢,虽然能启动成功,但是启动的速度实在让人受不了,怎么sendmail和sm_client服务解决启动慢的问题?
A00002:
类似这样的应该是/etc/hosts文件出现解析问题,不排除其他文件有问题,这里/etc/hosts文件的原始内容如下:

    # Do not remove the following line, or various programs
    # that require network functionality will fail.
    127.0.0.1 localhost localhost.localdomain


Q00003:
在有些播放器上,有时候发现播放列表上的字符是乱码,解决播放列表乱码的问题是否有统一的格式呢?
A00003:
估计各个播放器的字符编码方式不一样,目前很难有统一的字符编码方式来处理这类问题,比如常见的xmms可以采用加载windows字体的方式获取汉字编码解决,具体方法把WINDOWS目录Fonts目录下的simsun这种字体拷贝到LINUX的这个目录下/usr/share/fonts/zh_CN/TrueType,然后重起字体服务,fedora8版本以下解决方案如下:

    service xfs restart
    fc-cache -f -v


如果没有xfs服务,请先安装xfs:

    yum install xfs xfs-devel


再用右键单击xmms播放工具的任何地方
会看到一个"选项",然后选择"功能设定"选择"fonts"
然后设置刚才考过来的字体,注销系统再播放机即可正常使用,对于高版本的xmms记得设置字符编码。
对于音质比较好的amarok,需要进行下载一个软件包,具体方法如下:
安装必要的软件

    >sudo apt-get install python-mutagen


or

    >yum install python-mutagen -y


把存在NTFS分区上的音乐文件软连接到ext2或ext3分区,

    >ln -s /u/music /sun/music


转换标签格式

    >cd /u/music
    >find . -iname "*.mp3" -execdir mid3iconv -e GBK {} \;


Q00004:
不知道有人使用过在linux下的无线上网"业务"没有?在以前,还没有GUI的界面驱动的时候,常常使用./configure来make install,而随着rpm和deb的盛行,安装变简单了,虽然简单,但是无线仍然不好使,老是激活不了,针对IPW2200的网卡和FC系列的操作系统,我这里给几种解决办法:
A00004:
首先在ipw2200.sourceforge.net下载相关驱动:
使用shell激活:

    #!/bin/bash

    iwlist=('Cnangel');
    iwpasslist=('1234567890');

    dev='eth1';
    n=1;
    i=0;

    while [ $i -lt $n ];
    do
    iwname=${iwlist[$i]};
    iwpass=${iwpasslist[$i]};
    if [ "`ps -ef |grep dhclient|grep $dev`" != "" ];then
    echo "$dev is up";
    break;
    fi

    if [ "`iwlist $dev scanning|grep $iwname`" ];then
    /sbin/iwconfig $dev essid $iwname
    /sbin/iwconfig $dev key $iwpass
    echo > /var/lib/dhcp/dhclient-$dev.leases
    echo > /var/run/dhclient-$dev.pid
    /sbin/dhclient -1 -q -lf /var/lib/dhcp/dhclient-$dev.leases -pf /var/run/dhclient-$dev.pid $dev
    fi
    ((i++))
    done


注意:目前的无线密钥驱动好像不支持WPA-PSK和WPA2,如,仅仅支持WEP,所以选择密钥的时候一定要注意。
另外,驱动也可以找NetworkManager来进行更加方便的GUI管理,安装方法如下:

    yum install NetworkManager -y
    yum install NetworkManager-gnome -y


Q00005:
Eugene M. Minkovskii wrote:

> I'm use vim on FreeBSD 5.3 now. I trying bouth vim6.3 whitout
> patchs and vim6.3 whith patch 1-62.
> I type:
>
> bash-3.00$ export EDITOR=vim
> bash-3.00$ crontab -e
>
> and after saving crontab changes, I'll get following error:
>
> crontab: temp file must be edited in place
>
> About this we see in man crontab following:
>
> -e Edit the current crontab using the editor specified by the VISUAL
> or EDITOR environment variables. The specified editor MUST edit
> the file in place; any editor that unlinks the file and recreates
> it cannot be used. After you exit from the editor, the modified
> crontab will be installed automatically.
>
> Hmm. I'll try to remove my .vimrc and crontab install correctly,
> but when I use empty .vimrc, crontab broken again.
>
> Have you any ideas?
A00005:
Set 'backupcopy' to "yes". ":help crontab".
--
You can tune a file system, but you can't tuna fish
-- man tunefs
Cnangel注:希望能看明白,主要针对crontab用的时候发生"crontab: temp file must be edited in place"错误的时候的解决办法。


Q00006:
当vim一个文件内容显示一团乱码的时候,你会不知所措,根本不知道采用了什么编码,这时候我们利用我们聪慧的头脑去大胆尝试,一切问题会迎刃而解。
A00006:
首先,判断Vim的默认打开编码,进入命令行模式:

    :echo &enc


发现为utf8,把终端的字符编码和vim编码格式弄成一种类型;
vim文件,发现内容仍然是一团糟,尝试使用:

    :set encoding=utf8


然后,vim文件,文件内容仍然是乱码,强制指定:

    :edit ++enc=utf8


vim文件发现一切明了。

fileencodings 参数是告诉 vim 尝试解码的多种可能编码,vim 会一个一个试着解码,直到试对为止,然后会将试出来的编码记录到 fileencoding 里面,可以显示 fileencoding 就能知道现在 vim 用什么来解码这个文件了。如果想将文件用另外一种编码"另存为",可以修改 fileencoding 然后 :w 。
termencoding 参数是Vim 所工作的终端(或者Windows 的Console 窗口) 的字符编码方式。
注意:freebsd中文一般使用cp936,而linux部分机器可使用gbk字符集
我目前使用的vim配置如下:(~/.vimrc)


    " multi-encoding setting, MUST BE IN THE BEGINNING OF .vimrc!
    "
    if has("multi_byte")
    " When 'fileencodings' starts with 'ucs-bom', don't do this manually
    "set bomb
    set fileencodings=ucs-bom,utf-8,chinese,taiwan,japan,korea,latin1
    " CJK environment detection and corresponding setting
    if v:lang =~ "^zh_CN"
    " Simplified Chinese, on Unix euc-cn, on MS-Windows cp936
    set encoding=chinese
    set termencoding=chinese
    if &fileencoding == ''
    set fileencoding=chinese
    endif
    elseif v:lang =~ "^zh_TW"
    " Traditional Chinese, on Unix euc-tw, on MS-Windows cp950
    set encoding=taiwan
    set termencoding=taiwan
    if &fileencoding == ''
    set fileencoding=taiwan
    endif
    elseif v:lang =~ "^ja_JP"
    " Japanese, on Unix euc-jp, on MS-Windows cp932
    set encoding=japan
    set termencoding=japan
    if &fileencoding == ''
    set fileencoding=japan
    endif
    elseif v:lang =~ "^ko"
    " Korean on Unix euc-kr, on MS-Windows cp949
    set encoding=korea
    set termencoding=korea
    if &fileencoding == ''
    set fileencoding=korea
    endif
    endif
    " Detect UTF-8 locale, and override CJK setting if needed
    if v:lang =~ "utf8$" || v:lang =~ "UTF-8$"
    set encoding=utf-8
    endif
    else
    echoerr 'Sorry, this version of (g)Vim was not compiled with "multi_byte"'
    endif

    "环境变量 LANG(使用的语言)
    "环境变量 LC_CTYPE(使用的内部编码)
    "Vim 选项 encoding(Vim 的内部编码)
    "Vim 选项 termencoding(Vim 在与屏幕/键盘交互时使用的编码)
    "Vim 选项 fileencoding(Vim 当前编辑的文件在存储时的编码)
    "Vim 选项 fileencodings(Vim 打开文件时的尝试使用的编码)
    "Vim 选项 ambiwidth(对"不明宽度"字符的处理方式;Vim 6.1.455 后引入)
    syntax on

    set fileencodings=ucs-bom,utf-8,gbk,big5,latin1
    set encoding=utf-8
    set termencoding=utf-8
    set fileencoding=utf-8

    "缩进
    set backspace=2
    set autoindent
    "set expandtab
    "set cindent shiftwidth=2
    "set autoindent shiftwidth=2

    "空格代替tab
    set shiftwidth=4
    set softtabstop=4
    set tabstop=4
    set cindent shiftwidth=4

    "行号
    set number

    "标尺
    set ruler

    set incsearch
    set showmode
    "打开文件时自动回到上次编辑位置
    set showcmd
    "置粘贴模式,这样粘贴过来的程序代码就不会错位了。
    "set paste

    "设置帮助信息
    set helplang=cn

    "界面字体
    set gfn=Courier_New:h10:cANSI
    "set guifont=SimSun 12

    "搜索关键字高亮
    set hls

    "搜索是对不全区分大小写
    "set ic

    "但现在要区分
    "set noic

    "设置不备份
    "set nobackup
    "set nowritebackup

    "默认备份文件目录
    "set backupdir=/usr/local/backup

    "设置配色方案,colorscheme可以设置,但我总提示找不到
    "source $VIMRUNTIME/colors/slate.vim
    "colorscheme nightflight
    "colorscheme desert
    "默认是插入模式
    "set insertmode

    "设置Crontab为可用状态
    set backupcopy=yes

    map <F6> a<C-R>=strftime("%c")<CR><Esc>
    map <F7> :w<CR>:!sh -x %<CR>
    map <F8> :w<CR>:!perl -c %<CR>
    map <F9> :w<CR>:!perl %<CR>


最后谢谢谢宇恒同学给予的帮助。
后补:关于vim编译
建议使用vim7.0或以上版本,源码编译时参数可以选择,比如:


    ./configure --prefix=/usr --enable-multibyte


配置选项的含义:
--enable-multibyte
我们强烈推荐你启用该选项(虽然它是可选的),因为它使得 Vim 可以支持使用多字节字符编码的文件,在一个使用多字节字符集的 locale 上,这是必需的


Q00007:
利用mail命令发送附件,真的很难么?
A00007:
不难,需要你的服务器端支持uuencode编码就可以。比如利用mail命令发送一个压缩包

    tar cf - Hash.lst | gzip | uuencode Hash.lst.tar.Z | mail -s 'sdas'xxxx@xxxxc.com

即可完成.
可以man uuencode,发现有这么一条:

    tar cf - src_tree | compress | uuencode src_tree.tar.Z | mail sys1!sys2!user


Q00008:
怎么利用date获得昨天的日期?
A00008:
在BSD平台上:

    date -v-1d "+%Y%m%d %T"


在Linux平台上:

    date -d "-1 day" "+%Y%m%d %T"


其他方法,并不一定通用,只是一些有特色思路


    date +%Y%m%d -d "-1 day"
    date -d yesterday +%C%y%m%d
    export TZ="TAIST+16" && date|awk '{print $2,$3}' && export TZ="TAIST-8"
    echo |gawk ' {print strftime("%Y%m%d" ,systime()-86400*4) ;exit }'
    date -r $(($(date "+%s")-86400))
    date -d "3 days ago" +%Y%m%d


Q00009:
怎么使用ssh密钥而不用输入密码登陆远程机器?
A00009:
假如本地机器是localhost,远程机器是remotehost,要访问远程机器,使用ssh-keygen来生成密钥,一般以 rsa key为例 :
Linux上的sh-keygen:

    ssh-keygen -t rsa


FreeBSD上的sh-keygen:

    ssh-keygen -P '' -t rsa1


早期的sh-keygen:

    ssh-keygen -f id_rsa -P ''


原文如下:

    If your version of ssh-keygen does not understand the -t option, try: ssh-keygen -f keyname-identity -p ''


然后将id_rsa.pub放到远程机器的~/.ssh/目录下,运行:


    chmod 644 ~/.ssh/authorized_keys
    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys


这样,在localhost上使用scp以及ssh可以直接登陆remotehost,而不用输入密码了。
注意:.ssh权限最好设置为0711权限,而密钥所在文件是0400权限。


Q00010:
我在linux下可以使用命令查看通讯进程,如果发现有死锁的进程,我可以使用kill命令杀掉,但是我如果不得不工作的windows平台下,怎么杀掉一个进程呢?比如我想杀掉占用80端口的进程怎么办呢?
A00010:
长期在linux下工作的朋友,对Windows也非常陌生,对于刚接触到windows的朋友来说,不知道什么进程是占用了什么端口是个非常痛苦的事情,尽管windows任务管理器提供了比较丰富的功能,但是习惯于命令式的人实在是觉得“拗手”吧!查看80端口PID号码:

    netstat -ano


查出Local Address列的80端口对应的PID是多少

    Active Connections

    Proto Local Address Foreign Address State PID
    TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 3880
    TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 1880
    TCP 0.0.0.0:2804 0.0.0.0:0 LISTENING 956
    TCP 0.0.0.0:3260 0.0.0.0:0 LISTENING 1640
    TCP 0.0.0.0:3261 0.0.0.0:0 LISTENING 1640
    TCP 0.0.0.0:3306 0.0.0.0:0 LISTENING 520
    TCP 0.0.0.0:8000 0.0.0.0:0 LISTENING 3804
    TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 2676


从上面我们运行命令(不会不知道windows的命令从哪入口吧?msdos)知道80端口的PID是3880,于是杀掉这个端口,也就是关闭80这个端口号,运行命令:

    ntsd -c q -p 3880


即可以关闭80端口了。


Q00011:
经常使用Linux机器,发现mail功能不好使,进入/etc/init.d目录,发现根本没有此目录,使用:

    which sendmail


确定系统已经安装上mail,但是我怎么将mail作为守护进程运行呢?
A00011:
如果要sendmail处理发送来的信件,必须有一个守护进程在运行。sendmail守护进程就是带有特殊标志位的sendmail程序。这个守护进程是被/etc/init.d/mail脚本在系统启动的时候自动启动的。
在此脚本中用来启动sendmail的命令如下:

    /usr/lib/sendmail -bd -q15m


  -bd标志是使sendmail作为一个守护程序运行。-q15m标志使sendmail fork出一个子守护进程来每隔15分钟处理一次消息队列。
如果没有对应的目录,我相信写一个mail的守护进程应该不成问题了吧。


Q00012:
我的本子的显卡型号是ATI MOBILITY RADEON X700,每次尝试一个Linux发行版,都为显卡驱动的安装伤脑筋,这里整理笔记如下,希望能给遇到类似的同学一点点小帮助。
A00012:
首先是去http://www.ati.com下载你计算机专用显卡型号的驱动,比如我的显卡驱动为:ati-driver-installer-8.40.4-x86.x86_64.run,32位机器或者64位机器通用这个显卡驱动,所以不必要担心自己下错了。
再次,需要xorg和相关驱动,一般发行版本自带,老的发行版本没有的话,自己google一下。
接着,安装ati驱动,直接运行可能会找不到相关的内核,所以需要以下形式安装:

    ./ati-driver-installer-8.40.4-x86.x86_64.run --listpkg


找到我的对应的发行版本:Fedora/F7
紧接着:

    ./ati-driver-installer-8.40.4-x86.x86_64.run --buildpkg Fedora/F7


若没有错误,则ati驱动安装完成了。
检测阶段:startx,发现黑屏,按Ctrl+Alt+F1,看到提示错误,libstdc++5.0.0不存在,不能装载flgrx.so文件,这个很容易,找一个compat-libstdc++-33包安装就可以了。

    yum install compat-libstdc++-33 -y


如果还有错误,根据错误信息处理就ok了。


Q00013:
在Linux下使用了Windows的丰富的字体,发现在宽屏下,用firefox使用windows的字体看英文字体比较虚,我选择的是宋体,16号大小,如果选择12号,倒是看上去不是很虚,但是字体太小了,有点累眼睛怎么使用好看一点的字体又不会影响效果呢?
A00013:
对于独立显卡的机器,首先配置好机器显示的分辨率,我这里宽屏配置的分辨率是1280x800,首先在gnome下字体并没有问题,只是我以前改动过firefox的配置,针对firefox的问题解决如下:
1,打开firefox首选项,选择内容项,找到“字体&颜色”;
2,默认字体选择“sans-serif”,大小选择合适的高度,我选择16号大小,其实“Courier New”也不错,根据情况选择;
3,高级选项可以自己选择,比如serif字体,Times New Roman以及Arial字体也不错。
当然这些都是在windows字体点阵足够的情况下,如果仍然看上去虚,把字体由16号变小,直到看清楚为止,也可以找一些比较高点阵的字体,google一下,注意有些字体是要收费的哟。


Q00014:
在unix下运行perl程序时,发现错误提示为“: bad interpreter: No such file or directory",而程序没有任何错误,解释器路径也正确,为何会出现这种没有这个文件或者目录的情况呢?
A00014:
这种原因一般是由于0x10和0x13,简单点说是windows系统的换行和回车导致问题,一般在linux或者unix下的换行不包括回车符,所以需要使用dos2unix工具将perl程序转换成为unix可识别的文字就可以了。


Q00015:
怎么在Linux下使用Windows下的字体呢?例如:Fedora8
A00015:
在Fedora官方的FAQ上,写得很清楚,这里不累述了,原文如下:

    Yes, you can. Here's how you install fonts:

    1. Under the "System" menu in the tray, choose "references" and then "Fonts."
    2. Click on the "Details..." button.
    3. Click on "Go to font folder."

    Now simply drag & drop your fonts into the "Fonts" window to add them. You may have to log out and log in again to see them actually show up in that folder.

    If you have any programs open, you will need to close then and then open them again, to have the new fonts show up in those programs.

    By the way, there's also a very easy way to install all of the common Windows fonts on Linux. This can sometimes make web pages display more nicely:

    1. Open a Terminal.
    2. Become root:

    su -
    3. Download the MS Core Fonts Smart Package File:

    wgethttp://corefonts.sourceforge.net/msttcorefonts-2.0-1.spec
    4. Make sure that the rpm-build and cabextract packages are installed:

    yum install rpm-build cabextract
    5. Build the Core Fonts package:

    rpmbuild -ba msttcorefonts-2.0-1.spec
    6. Install the Core Fonts package:

    yum localinstall --nogpgcheck /usr/src/redhat/RPMS/noarch/msttcorefonts-2.0-1.noarch.rpm


Q00016:
针对Fedora8(这里又说F8,@_@ ),为什么和以前安装Fedora7、fedora6等等不一样了呢,在插入启动光盘的时候一直sbin\loader... ...中或者一直halt,或者无缘无故的怪毛病?
A00016:
笔者在安装fedora8的时候也出现过这样的问题,刚开始以为自己的可擦写盘坏掉了,后来又用dvd刻了一个dvd盘,依旧loader,去官方查没有结果,后来还是搜索给出了答案,原来是硬件配置和现有版本冲突的问题,不知道为什么fedora8这么仓促发布?不把一些环境测试好了在发布,这个问题后来已经反应到redhat的官方网站并且提交上去。笔者机器是acpi冲突,安装时,编辑安装选项(按”e"编辑),后面加上

    clocksource=acpi_pm


由于笔者本本的驱动在fedora8中没有集成,所以得自己从官方ati中下载驱动,不过官方的ati驱动又出现了bug,不过整整还能用,安装时候只能在后面加上:

    text


这样安装完成了。不过现在笔者已经很满意了,在fc3的时候,官方还没有成型的ati显卡驱动,fedora core3没有自己集成ati驱动,每次都是和flgrx以及xorg重新编译,然后再和内核一起加载,这样才解决,现在方便多了,关于怎么去安装显卡看 Q00012。


Q00017:
关于rpm安装的mysql,在日志文件/var/log/mysqld.log会出现:

    [ERROR] Fatal error: Can't open privilege tables: Can't find file: './mysql/host.frm' (errno: 13)


或者:

    [ERROR] Fatal error: Can't open privilege tables: Table 'mysql.host' doesn't exist


的字样,而自己编译的mysql没有这个方面的问题(除非你不按照INSTALL文件的说明去做),究竟该怎么解决呢?
A00017:
这个问题来源于操作系统安装mysql时,都是以root身份安装rpm,实际上是mysql的rpm包的bug,导致数据存放目录权限是root权限导致,正确的解决方法是把mysql_install_db的数据库目录更改所属权限即可,以默认安装的路径为例:

    chown -R mysql:root /var/lib/mysql/mysql


Q00018:
在x64位机器编译GD库时,发现在编译freetype源码时出现如下错误:

    /usr/bin/ld: /usr/local/lib/libz.a(compress.o): relocation R_X86_64_32can not be used when making a shared object; recompile with -fPIC
    /usr/local/lib/libz.a: could not read symbols: Bad value
    collect2: ld returned 1 exit status


其中zlib版本为:zlib-1.2.2
libpng版本为:libpng-1.2.23
libjpeg版本为:jpeg-6b
freetype版本为:freetype-2.3.5
GD版本为:2.0.34
不能通过编译。
A00018:
错误原因:zlib安装问题
解决方法:重新编译zlib文件,步骤如下:

    # tar -zxvf zlib-1.2.3.tar.gz
    # cd zlib-1.2.3
    #./configure
    #vi Makefile


找到 CFLAGS=-O3 -DUSE_MMAP
在后面加入-fPIC,即变成CFLAGS=-O3 -DUSE_MMAP -fPIC

    #make
    # make install


及可正确完成zlib在x64位机器上的安装。


Q00019:
为什么我编译PHP时出现如下错误:

    checking for MySQL support… yes
    checking for specified location of the MySQL UNIX socket… no
    checking for MySQL UNIX socket location… /tmp/mysql.sock
    checking for mysql_close in -lmysqlclient… no
    checking for mysql_error in -lmysqlclient… no
    configure: error: mysql configure failed. Please check config.log for more information.


我已经安装了mysqlclient10-3.23.58-4.RHEL4.1、mysqlclient10-3.23.58-4.RHEL4.1、 mysql-4.1.12-3.RHEL4.1、mysql-server-4.1.12-3.RHEL4.1、mysql-bench-4.1.12- 3.RHEL4.1、mysqlclient10-devel-3.23.58-4.RHEL4.1和mysql-devel-4.1.12- 3.RHEL4.1,并不缺少任何依赖了,为什么出现这种错误呢?怎么样解决这个错误?
A00019:
关于这个问题,我google了很多地方,个人认为是环境支持性问题,也许是php的bug或者是mysql的bug,关于网上所说“安装PHP的时候没有指定一下mysql的安装目录。但是我已经指定了,所以这个说法是错误的,其实主要原因是 mysql-level没有装,也就是mysql的版本不对,应该换 mysql-max-5.0.21版本(包含所有mysql相关内容的软件包)”云云是无可奈何的解法,另外一种解决办法就是将mysql中的libmysqlclient库移到lib库目录下解决问题,以x64位机器为例,假设mysql编译时--prefix=/usr:

    # cd /usr/lib64
    # ln -s /usr/lib64/mysql/libmysqlclient.so
    # ldconfig


然后对PHP进行编译:

    ./configure --prefix=/usr/share \
    --datadir=/usr/share/php \
    --with-apxs=/usr/sbin/apxs \
    --libdir=/usr/share --includedir=/usr/include \
    --bindir=/usr/bin \
    --with-config-file-path=/etc \
    --enable-mbstring --enable-mbregex \
    --with-mysql --enable-bcmath \
    --with-gd --enable-calendar \
    --with-bz2 --with-zlib --enable-zip \
    --enable-gd-imgstrttf \
    --enable-gd-native-ttf \
    --with-ttf-dir=/usr/lib \
    --with-freetype-dir=/usr/lib \
    --with-zlib-dir=/usr/lib \
    --with-png-dir=/usr/lib \
    --with-jpeg-dir=/usr/lib \
    --with-xpm-dir=/usr/X11R6 \
    --with-tiff-dir=/usr/lib \
    --enable-memory-limit --enable-safe-mode \
    --bindir=/usr/bin \
    --enable-bcmath -enable-calendar \
    --enable-ctype --with-ftp \
    --enable-magic-quotes \
    --enable-inline-optimization \
    --with-iconv --enable-ftp \
    --enable-debug \
    --enable-sqlite-utf8 \
    --enable-soap \
    --enable-zend-multibyte


一切安装顺利完成。


Q00020:
声卡驱动alsa安装上了怎么就是没有声音阿?用alsamixergui或者alsamixer配置alsa时,出现:

    *** PULSEAUDIO: Unable to connect: Connection refused
    alsamixer: function snd_ctl_open failed for default: Connection refused


或者使用alsa的驱动播放时,出现:

    *** PULSEAUDIO: Unable to connect: Connection refused
    [AO_ALSA] Playback open error: Connection refused
    Could not open/initialize audio device -> no sound.


当然,完全可以使用其他的声卡驱动来代替,比如oss,或者转换alsa-oss以及其他方式,总之也很完美,但是有没有更完美的解决,我只想使用alsa方式来进行播放呢?
A00020:
完美的解决方案是有的,这里是alsa的一个bug,当新的驱动应用上的时候,/tmp/pulse-*这个目录下面的配置信息没有更新,导致声卡驱动不能正常使用,只要删除这个目录,就可以了,原文如下:
Ma pulseaudio è avviato?

    # ps -eaf | grep pulseaudio

Ti risponde qualcosa?

Se non lo è eseguilo con il tuo utente:

    $ pulseaudio -D &

e se da errore verifica se la directory /tmp/pulse-tuoutente ha i permessi corretti:

    $ ls -ld /tmp/pulse*
    drwx------ 2 tuoutente tuoutente 4096 27 nov 14:26 /tmp/pulse-tuoutente

Se appartiene invece a "root" elimina quella directory prima di riavviare pulse-audio:

    $ su

    # rm -r /tmp/pulse-tuoutente
    # exit
    $ pulseaudio -D &

Se non va ancora...

...se lanci mplayer con una di queste opzioni:

    $ mplayer -ao nosound blablabla.avi
    o
    $ mplayer -ao sdl blablabla.avi
    o
    $ mplayer -ao alsa blablabla.avi
    o
    $ mplayer -ao oss blablabla.avi

另外,保证alsa驱动相关有这些相关的包:

    alsa-utils alsa-lib alsa-lib-devel

alsa-driver似乎可以不需要

原文:http://my.huhoo.net/archives/2007/04/linux-1.html

TAG:

我来说两句

(可选)

日历

« 2008-08-29  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 6898
  • 日志数: 12
  • 商品数: 1
  • 建立时间: 2006-10-11
  • 更新时间: 2008-07-09

RSS订阅

Open Toolbar