Linux之友 发表于 2008-07-04 22:25 浏览次数:1,190 次
Fedora 9 终于换成了 2.6.25 kernel,2.6.25 支持 ISATAP 方式的 ipv6 tunnel 接入。于是把自己的机器简单配置了一下支持IPV6
1: 保证 kernel 支持 ipv6
2: 编辑 /etc/sysconfig/network ,增加下面这行
IPV6_DEFAULTGW=your ipv6 gateway
3: 编辑 /etc/sysconfig/network-scripts/ifcfg-sit1, 内容如下
DEVICE=sit1
ONBOOT=yes
IPV6INIT=yes
IPV6TUNNELIPV4=your isatap tunnel IP
IPV6TUNNELIPV4LOCAL=your local ipv4 ip
IPV6ADDR=your ipv6 address
4: ifup sit1
UPDATE: 我还没有试验过这个在 F9 上重启是否有效,但在 centos 5.1 上面不好用,似乎 ifup-sit 不会创建对应的 sit1 设备,先得手动创建以后才有效。
作者:sixth
Linux之友 发表于 2008-07-04 16:21 浏览次数:683 次
Ubuntu 8.04 LTS的离线升级包方便上不了网的朋友们。离线升级包分为三个部分,分别是base.tar(基础更新包,适用于所有用户)、program.tar(开发包,编程软件)、server.tar(服务器软件包,适用于学习研究服务器设置的朋友使用)具体的软件包列表如下
base.tar:
language-pack-gnome-zh-base language-pack-gnome-zh language-pack-zh language-pack-zh-base language-support-fonts-zh language-support-input-zh language-support-translations-zh language-support-zh language-support-extra-zh im-switch fcitx xpdf-chinese-simplified xpdf-chinese-traditional poppler-data alien build-essential autoconf automake1.9 cvs subversion ubuntu-restricted-extras libxine1-ffmpeg libxine1-all-plugins libxine1-plugins w32codecs gcc-3.3-base libstdc++5 gstreamer0.10-ffmpeg gstreamer0.10-pitfdll gstreamer0.10-plugins-bad gstreamer0.10-plugins-bad-multiverse gstreamer0.10-plugins-ugly gstreamer0.10-plugins-ugly-multiverse gstreamer0.10-esd libdvdnav4 libdvdread3 libdvdcss2 smplayer smplayer-themes mozilla-mplayer gstreamer0.10-fluendo-mpegdemux gstreamer0.10-gnonlin mplayer mencoder totem-xine xine-plugin libxine1-ffmpeg stardict stardict-common stardict-plugin stardict-plugin-espeak stardict-plugin-festival unrar p7zip-full cabextract wine p7zip-rar t-o-r privoxy ethstatus 和 dist-upgrade 的更新包,包括Ooo和内核等。
program.tar:
eclipse eclipse-pydev eclipse-cdt eclipse-jdt eclipse-rcp netbeans sun-java6-jdk openjdk-6-jdk glassfishv2 glassfishv2-bin bouml dia
server.tar:
phpmyadmin squid shorewall apache2 php5 mysql-server php5-mysql libapache2-mod-php5 vsftpd ssh openssh-server postfix dovecot-imapd dovecot-pop3d clamav-daemon spamassassin
下载及使用方法:
第一步、下载
Windows平台,使用迅雷等专用下载工具,不过下载时需要特别配置,以迅雷为例配置。当你点击下载链接时,出现的就是一个对话框,登录到服务器的用户名和密码,你可以访问论坛新闻区得到。
下载地址如下
http://ftp.ubuntu.org.cn/home/oneleaf/hardypack/base.tar 209M
http://ftp.ubuntu.org.cn/home/oneleaf/hardypack/program.tar 328M
http://ftp.ubuntu.org.cn/home/oneleaf/hardypack/server.tar 67M
Linux平台,使用buildpack.sh.zip脚本即可完成下载,首先下载buildpack.sh.zip脚本至自己的主目录。从中解出buildpack.sh。打开终端运行buildpack.sh,命令行如下:
sh buildpack.sh
sh down.sh
这样在你的下载目录之中你会发现base.tar、program.tar和server.tar三个文件。这就是离线升级包。
第二步、安装
打开终端,进入下载目录,如果你是在windows平台下载的离线包,请将它们移动到你自己的主目录之下。Linux平台下载的朋友请移动到下载目录中。我们的安装工作就要开始了。输入命令
sudo mkdir /usr/local/pool
sudo tar xvf base.tar -C /usr/local/pool
sudo tar xvf program.tar -C /usr/local/pool
sudo tar xvf server.tar -C /usr/local/pool
使用gedit修改源列表,命令如下:
sudo gedit /etc/apt/source.list
在source.list后面加入下面的内容
deb file:///usr/local/pool/base hardy main
deb file:///usr/local/pool/program hardy main
deb file:///usr/local/pool/server hardy main
最后我们更新一下系统:
sudo apt-get update
至此离线升级包的安装过程结束,下面你的任务就是从wiki知识库的《Ubutnu 8.04 LTS速配指南》一文的”设置中文环境”一节开始设定你的Ubuntu系统了。
作者:sixth
Linux之友 发表于 2008-07-03 22:47 浏览次数:938 次
修改 /etc/X11/xdm/Xaccess,将下面的行:
#* # any host can get a login window
改为:
* # any host can get a login window
修改/etc/X11/gdm/gdm.conf,找到下面的信息:或Enable=false
修改为:或Enable=true
另外,去掉#Port=177前面的注释
修改/etc/inittab,将
id:3:initdefault:
修改为:
id:5:initdefault:
并将最后一行改为:
确保/etc/X11/xdm/Xservers的属性为444,/etc/X11/xdm/Xsetup_0的属性为755(一般系统默认就是这个了)
# ls -l /etc/X11/xdm/Xservers
-r–r–r– 1 root root 487 Jul 12 2006 /etc/X11/xdm/Xservers
# ls -l /etc/X11/xdm/Xsetup_0
-rwxr-xr-x 1 root root 935 Apr 21 2006 /etc/X11/xdm/Xsetup_0
最后,重启一下服务器,再使用xbrowser登录就OK了。
作者:坚果
Linux之友 发表于 2008-07-02 16:07 浏览次数:570 次
原来的修改命令行:
sudo gedit /etc/fonts/language-selector.conf
已经不适用,现在应该是:
cd /etc/fonts/conf.avail
sudo gedit 69-language-selector-zh-cn.conf
字体配置文件中的 替换《》为半角字符《family》fontname《/family》已经变成了《string》fontname《/string》需要修改的朋友要注意格式。
刷新字体缓存:
sudo fc-cache -f -v
之后重启X(ctrl+alt+backspace)
作者:korn
Linux之友 发表于 2008-07-02 16:02 浏览次数:577 次
一、概述
Linux提供了多种特性来实现文件锁定。其中最简单的方法就是以原子操作的方式创建锁文件,所谓“原子操作”就是在创建锁文件时,系统将不允许任何其它的事情发生。这就给程序提供了一种确保它所创建的文件是唯一性的方式,且该文件不可能被其它程序在同一时刻创建。
二、方法
锁文件仅仅是充当一个指示器的角色,程序间需要通过相互协作来使用它们。锁文件只是建议性锁,与此对立的是强制性锁。
为创建一个用作指示器的文件,我们使用带O_CREATE和O_EXCL标志的open系统调用。这将使我们以一个原子操作同时完成两项工作:确定文件不存在,然后创建它。
三、实现
//file : lock.c
#i nclude <unistd.h>
#i nclude <stdlib.h>
#i nclude <stdio.h>
#i nclude <fcntl.h>
#i nclude <errno.h>
int main()
{
int file_desc;
int save_errno;
file_desc = open("/tmp/LockFile.test", O_RDWR | O_CREAT | O_EXCL, 0444);
if (file_desc < 0)
{
save_errno = errno;
printf("Open failed with error is %d\n", save_errno);
}
else {
printf("Open succeeded\n");
}
exit(EXIT_SUCCESS);
}
|
第一次运行程序:
$ lock
输出如下:
Open succeeded
我们再次运行程序:
$ lock
输出如下:
Open failed with error is 17
分析:
第一次运行程序时,由于文件并不存在,所以执行成功。对于后续的执行,因为文件已经存在而失败了。若想程序再次执行成功,必须删除锁文件。
在Linux系统中,通常错误号码17代表的是EEXIST,此错误用以表示一个文件已存在。错误号定义在头文件errno.h或(更常见的)它所包含的头文件中。
Linux之友 发表于 2008-06-29 22:22 浏览次数:606 次
1.显示时钟
[root@****~]# clock –show
2008年05月06日 星期二 11时21分09秒 -0.223408 seconds
2.设置时钟(clock –set –date=“月/日/年 时:分:秒”)
[root@**** ~]# clock –set –date=”05/06/2008 11:26:00″
3.与硬件时钟同步(默认重启系统就会与硬件时钟同步)
[root@**** ~]# clock –systohc
4.与internet上的时间服务器同步
[root@****~]# rdate time.join.uni-muenster.de
作者:korn
Linux之友 发表于 2008-06-28 09:44 浏览次数:756 次
下面是一段shell脚本拷贝到path 路径下运行即可,原版本来自何勃亮,我增加了提示功能方便输入.
#! /bin/sh
case $1 in
cctv0 ) mplayer mms://live.cctv.com/livenews > /dev/null & ;;
cctv1 ) mplayer mms://live.cctv.com/live11 > /dev/null & ;;
cctv2 ) mplayer mms://live.cctv.com/live12 > /dev/null & ;;
cctv3 ) mplayer mms://live.cctv.com/live13 > /dev/null & ;;
cctv4 ) mplayer mms://live.cctv.com/live14 > /dev/null & ;;
cctv10 ) mplayer mms://live.cctv.com/live20 > /dev/null & ;;
phtv0 ) mplayer mms://222.47.29.116/litv01 > /dev/null & ;;
phtv1 ) mplayer mms://222.47.29.116/litv03 > /dev/null & ;;
*) echo “please enter ‘tv cctv0′[cctv1 cctv2 cctv3 cctv4 cctv10 phtv0 phtv1] to select differrnt tv channel”
esac
来源:51cto 作者:zzy
Linux之友 发表于 2008-06-27 15:41 浏览次数:1,139 次
uClinux操作系统是标准Linux的一个分支,是专门针对没有MMU(存储管理单元)的CPU而配制的操作系统,并且专为嵌入式系统做了许多小型化的工作。目前uClinux常用的应用程序库是mC-libc和mClibc。
通过make menuconfig来配置uClinux时,可以看到,这里可供选择的Shell有:sash、minix -shell、nwsh、bash、Other。
其中 sash对应的代码为uClinux-Samsung/user/sash,minix-shell对应的代码为uClinux-Samsung /user/sh,nwsh对应的代码为uClinux-Samsung/user/nwsh,bash对应的代码为uClinux-Samsung /user/bash,Other则表示可选择其它的Shell,主要是指Busybox里面的几个Shell。
其中:
minix-shell在mC- libc和mClibc下都可以编译通过,且都可以较好地使用,但功能不是很强;nwsh在mC-libc和mClibc下都可以编译通过,但都工作不正常,无法进入命令行提示符;bash则无论在mC-libc还是mClibc下都无法编译通过,其结构不适合uClinux。本文主要讨论如何使用 Busybox中的Shell。
Busybox中的shell
Busybox最早为Debian Linux的安装盘所写,并将大量Linux下的工具集成到一个可执行文件中。目前Busybox提供了100多个命令的功能,但它的可执行文件只有几百 KB,为嵌入式系统提供了一个比较完整而且体积较小的POSIX运行环境。不过这些命令的参数选项要比原来完整的GNU命令少。
Busybox中集成进去的Shell有以下几个。
①Lash:很小,加起来有10k,非常适合执行命令,支持管道和重定向,但不支持Bourne Shell语法,无法解释脚本。
②Hush:也非常小, 18k左右,支持Bourne Shell语法,能够很好地处理if/then/else/fi结构语句,但是处理不了像for/do/done或者case/esac等循环语句。
③Msh:加起来有30k左右,能够处理for/do/done、case/esac等循环语句。只要是Bourne shell能够做的,Msh一般都能做到,它的语法与Bourne Shell语法可能不完全相同,但大多数Bourne Shell语法都能被Msh解释。Msh是用vfork来创建新进程的,所以适于uClinux操作系统。
④Ash:在默认配置下大约有60k左右,是 Busybox里最完整的Shell,但无法在uClinux 上编译通过。
综上所述,Busybox里的Msh是目前uClinux下最好的Shell。
移植:
make menuconfig,重新配置uClinux内核。配置时选掉sash,然后选中以下几项:
BusyBox
shell
msh: Minix shell
MSH is /bin/sh
去掉sash后,就必须在Busybox里面把原来sash下常用的一些内部命令编译进来,例如ls、cp 等基本命令,这些原来是sash的内部命令,现在换了Shell,就必须选用Busybox里面的命令作为独立的小应用程序来使用。本文中选择了以下的常用命令:clear、mkdir、ping、cat、cp、ln、ls、ifconfig等,其中的ls和ifconfig命令下面的几项功能需要全部选择。
编译的时候有个错误,是指msh.c中没有_NSIG这个定义,须在msh.c中加上这样一句:#define _NSIG 255,之后可编译通过。
编译后,在uClinux-Samsung\user\busybox目录下编译出一个单个的独立执行程序,叫做 busybox.exe。将编译后的busybox.exe拷贝到uClinux-Samsung\romfs\home目录下,重新编译内核(不用再配置内核)。将编译好的uClinux操作系统内核下载运行,使用Busybox中的Msh Shell及各种命令。使用Busybox 也很简单,只要建一个符号链接就可以了。但是由于uClinux操作系统默认的根文件系统romfs是只读的,只有/tmp和/var两个目录下是以虚拟ram盘的方法实现的可读写目录(系统掉电后,里边保存的内容全丢失),故在进行符号链接时必须链接到这两个可读写的目录下,例如 ln -s /bin/busybox /tmp/ls,那么,执行/tmp/ls的时候,Busybox 就会执行 ls 的功能,也会按照 ls 的方式处理命令行参数。
运行成功后,可以发现这个Shell不同于原来的sash,它的提示符为#,支持上下键翻查命令,但还不支持Tab键补齐功能。
再找到uClinux-dist/config/config.in文件进行编辑,将该文件中的
bool ‘sh: tab completion’ CONFIG_USER_BUSYBOX_TAB_ COMPLETION
bool ‘sh: username completion’ CONFIG_USER_BUSYBOX_USER NAME_COMPLETION
改为:
bool ‘sh: tab completion’ CONFIG_USER_BUSYBOX_COMMAND_ TAB_COMPLETION
bool ‘sh: username completion’ CONFIG_USER_BUSYBOX_COM MAND_USERNAME_COMPLETION
然后再make menuconfig,选择Busybox的Shell特性后重新编译,再下载运行,就可以实现Tab键补齐功能了。
另外还可以增加Msh Shell的其它功能,比如ls命令的以彩色显示不同属性文件的功能等,这里不再详述。
来源:linuxidc 作者:oklinux