LinuxSir.cn,穿越时空的Linuxsir!

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

关于lfs用户的权限问题!(问题已经解决)

[复制链接]
发表于 2008-12-19 14:23:12 | 显示全部楼层 |阅读模式
各位高手,本人采用的是amd 4600+双核cpu进行的LFS 6.4的编译。在进行到5.8. Adjusting the Toolchain 时我在执行以下两条命令的时候出现了权限拒绝的问题。

gcc -dumpspecs | sed 's@/lib/ld-linux-x86-64.so.2@/tools&@g' > `dirname $(gcc -print-libgcc-file-name)`/specs

GCC_FIXED=`dirname $(gcc -print-libgcc-file-name)`/include-fixed &&
find ${GCC_FIXED}/* -maxdepth 0 -xtype d -exec rm -rvf '{}' \; &&
rm -vf `grep -l "DO NOT EDIT THIS FILE" ${GCC_FIXED}/*` &&
unset GCC_FIXED

我查看到以上命令所所操作的目标文件及目录都是属于root:root的所有者和所有组。然后我查看网上的说法是要求给与lfs用户root权限。
但是我发现在LFS文档里面对该操作并未作出描述。我现在想到3种解决方式但是不知道哪一种才是正确的。希望大家能够帮我解决这个疑惑。
1,su 到root下面运行上面的命令
2,到/根目录下执行chonw -r lfs:lfs /
3, 将lfs添加到root组里面



这两天太忙了,没有时间仔细看。刚才察看了一下6.2的手册,并和6.4的手册对比了一下。发现6.4在编译binutils的时候多了CC="gcc -B/usr/bin/"这个参数。我重新编译了一次。问题解决!
发表于 2008-12-19 17:54:23 | 显示全部楼层
楼主搞错了。第5章里所有的操作全部都不需要root权限。
它所操作的目录是/mnt/lfs/tools和指向这个目录的链接/tools。
这两个目录的权限已经给了lfs用户了。所以根本不需要切换到root
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-19 22:39:57 | 显示全部楼层

我的操作对象为/usr/lib/gcc/x86_64-unknown-linux-gnu/4.1.2/

lfs:~$ gcc -dumpspecs | sed 's@/lib/ld-linux.so.2@/tools&@g' > `dirname $(gcc -print-libgcc-file-name)`/specs
bash: /usr/lib/gcc/x86_64-unknown-linux-gnu/4.1.2/specs: Permission denied

lfs:~$ GCC_FIXED=`dirname $(gcc -print-libgcc-file-name)`/include-fixed &&
> find ${GCC_FIXED}/* -maxdepth 0 -xtype d -exec rm -rvf '{}' \; &&
> rm -vf `grep -l "DO NOT EDIT THIS FILE" ${GCC_FIXED}/*` &&
> unset GCC_FIXED
find: /usr/lib/gcc/x86_64-unknown-linux-gnu/4.1.2/include-fixed: No such file or directory


如上我的操作对象为/usr/lib/gcc/x86_64-unknown-linux-gnu/4.1.2/
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-19 22:45:20 | 显示全部楼层
难道是我之前编译gcc的时候设置出了问题?
ln -vs libgcc.a `gcc -print-libgcc-file-name | \
    sed 's/libgcc/&_eh/'`
回复 支持 反对

使用道具 举报

发表于 2008-12-20 15:24:30 | 显示全部楼层
是的,你的调整出错了。这种情况一般是PATH环境变量错了。
在第5章的整个过程中,请确保
/tools/bin
位于PATH的第一个。
现在你最好重新开始第5章。
回复 支持 反对

使用道具 举报

发表于 2008-12-20 17:26:07 | 显示全部楼层
Post by 46676463
各位高手,本人采用的是amd 4600+双核cpu进行的LFS 6.4的编译。在进行到5.8. Adjusting the Toolchain 时我在执行以下两条命令的时候出现了权限拒绝的问题。

gcc -dumpspecs | sed 's@/lib/ld-linux-x86-64.so.2@/tools&@g' > `dirname $(gcc -print-libgcc-file-name)`/specs

GCC_FIXED=`dirname $(gcc -print-libgcc-file-name)`/include-fixed &&
find ${GCC_FIXED}/* -maxdepth 0 -xtype d -exec rm -rvf '{}' \; &&
rm -vf `grep -l "DO NOT EDIT THIS FILE" ${GCC_FIXED}/*` &&
unset GCC_FIXED

我查看到以上命令所所操作的目标文件及目录都是属于root:root的所有者和所有组。然后我查看网上的说法是要求给与lfs用户root权限。
但是我发现在LFS文档里面对该操作并未作出描述。[color="Blue"]我现在想到3种解决方式但是不知道哪一种才是正确的。希望大家能够帮我解决这个疑惑。
1,su 到root下面运行上面的命令
2,到/根目录下执行chonw -r lfs:lfs /
3, 将lfs添加到root组里面
三种全不正确!

我又要再长气一句:
请[color="Red"]详细阅读 LFS 手册後再动手。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-21 11:11:16 | 显示全部楼层

PATH变量正确

lfs:~$ echo $PATH
/tools/bin:/bin:/usr/bin
lfs:~$


我是按照LFS手册来编译的。这已经是第2次出现这个问题了。 我记得我愿来编译6.2的事后并未出现过这种现象阿!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-21 11:33:20 | 显示全部楼层
我仅仅就是在分区的时候没有按照LFS手册上面指导的方式进行分区。而采用了LVM2的方式进行的分区。其中/mnt/lfs/boot为/dev/hda1,/dev/hda2为PV。其他的文件系统全部创建在基于hda2创建的rootvg上面。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2008-12-21 11:42:45 | 显示全部楼层
第4.3章的命令:
chown -v lfs $LFS/tools
chown -v lfs $LFS/sources

楼主确定执行过了?
用ls -l 命令查看$LFS/tools和 $LFS/sources目录,以及里面所有文件,确定权限已经给了lfs用户?

如果没有,那么请重新来过。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-21 12:19:28 | 显示全部楼层
给了,不给的话我$LFS/sources目录下的tar包怎么解压?解压用的可是lfs身分解压得!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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