LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 722|回复: 6

老大,我看不出GCC的规律呀..

[复制链接]
发表于 2003-3-23 13:14:07 | 显示全部楼层 |阅读模式
这样好不好..你帮我看看SAMBA的SMBMOUNT怎么编译好么..
http://www.samba.org/    上有新版本的下载.在软件包的source/clicent/里面有smbmount.c源文件.拜托.用你上面的GCC命令套是不成的.现在急需要用它,有时间跟你好好学学GCC的那些参数....

谢谢谢谢谢谢谢谢!你肯定有办法..
 楼主| 发表于 2003-3-23 13:14:41 | 显示全部楼层
 楼主| 发表于 2003-3-23 13:19:33 | 显示全部楼层

..........

/上有新版本的下载.在软件包的source/clicent/里面有smbmount.c源文件.
发表于 2003-3-23 14:54:34 | 显示全部楼层
兄弟可以下载:samba-2.2.8.tar.gz

具体安装步骤如后:    (仅供参考)

1.如就前版samba升级,旧版的binaries档案会更名为.old档,要回到前版samba可在系统提示符号下输入make revert

2.建议先移除旧版,直接安装Samba-2.2.8版本:

(1)rpm -e samba (rpm -qa | grep samba查询再一一移除亦可)

(2)cp samba-2.2.8.tar.gz /usr/local/

(3)cd /usr/local/

(4)tar zxvf samba-2.2.8.tar.gz

(5)cd /usr/local/samba-2.2.8/source/


(6) ./configure(./configure -help可有特定选项供参)

(7) make

(8) make install(如欲单独安装binaries和 man pages可分别下make installbin 及make installman)

(9)拷贝 /usr/local/samba-2.2.8/packaging/ 各版本目录下的smb.conf 档到/usr/local/samba/lib/ 目录下,以Caldera版本为例即/usr/local/samba-2.2.8/packaging/Cdldera/OpenLinux/smb.conf档案,并对之设定及修改如netbiosname、username map、log file,sharedir等相关内容和档案位置。

(10)启动方式:samba可以daemon的方式或inetd的方式加以启动,建议以standalone 的方式为之.
 楼主| 发表于 2003-3-23 17:24:08 | 显示全部楼层

嗯,谢谢你,现在做到你说的最后.测试通过.SAMBA运行正常了.

但是在/usr/local/samba/bin下面的常用samba命令里,却没有smbmount与smbumount命令呢.只有在源文件包里source/clicnt目录下有smbmount.c和smbumount.c等命令的源程序..
现在我需要的就是这两个命令,但默认编译安装时它们都未编译进去,现在接着应该怎么做..才能让smbmount与smbumount两个命令编译生效呢?
发表于 2003-3-23 18:29:24 | 显示全部楼层
你安装的是服务器,还要装客户端.你可以参考我给你的命令,进入到.C文件的目录进行编译,然后烤到相关目录试试.
发表于 2003-3-23 20:37:03 | 显示全部楼层
进入解压后的目录:

编辑“convert_smbpasswd”文件(vi +10 script/convert_smbpasswd)并做如下改动:

nawk 'BEGIN {FS=":"}

改为:

gawk 'BEGIN {FS=":"}

它将指定用GNU版本的awk文件处理工具取代Bell研究实验室版本的awk程序来处理“smbpasswd”文件,文件“convert_smbpasswd”用于将格式为Smb1.9.18的 “smbpasswd”文件转换成一种Samba2.0格式的“smbpasswd”文件。

编辑“include.h”文件,(vi +655 include/include.h)并删除几行。

删除下面几行:

#ifdef strcat
#undef strcat
#endif /* strcat */
#define strcat(dest,src) __ERROR__XX__NEVER_USE_STRCAT___;

编辑“smbmount.c”文件,(vi +99 client/smbmount.c)并做如下改变:

static void close_our_files(int client_fd)
{
int i;
for (i = 0; i < 256; i++) {
if (i == client_fd) continue;
close(i);
}

改为:

static void close_our_files(int client_fd)
{
struct rlimit limits;
int i;
getrlimit(RLIMIT_NOFILE,&limits);
for (i = 0; i < limits.rlim_max; i++) {
if (i == client_fd) continue;
close(i);
}

以上这两步改变将使“include.h”和“smbmount.c”文件和RedHat glibc 库兼容。

然后重新编译试试
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表