已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
从LFS到BLFS轻松上手关于编译LFS/BLFS的可行性报告青 铜 镜严正声明:本贴可能含有危险成份,未满18岁的网友,为了您的身体健康、思想健康和机器健康着想,请勿阅读!严重警告:如果您决定继续阅读下去,那么表明您愿意承担因阅读本贴后所产生的不可预知的后果!版权声明:本水贴部分为唐师父口述,部分引自BLFS官方文档,青铜镜执笔!一般人我不告诉他!引 言LFS/BLFS是一个浩大的软件编译安装工程,耗时耗精力。而且,有好多朋友辛辛苦苦花了几天甚至是几个星期的时间编译安装LFS,到了结束时还不一定 能够顺利启动系统,最后只好放弃,实在是让人不爽。本贴的目的,就是让喜欢LFS的朋友能够简单、快速、有效地完成从LFS到BLFS的艰巨任务,让 LINUX在机器上流畅地运行起来。唐师父说:世界是美好的,生命是珍贵的!不要在折腾电脑上消耗太多的精力!在电脑面前呆得太久了,这样不好!电脑只是一种工具,而不要把它当成玩具!这样妈妈会不放心的!请问:你妈贵姓?本水贴共分三集,即上集、下集和续集。唐师父说:青铜镜,你这样写贴,难道就不能一个就写完?这样写贴,你还有时间晒衣服吗?青铜镜答:根据内容不同分为 三集来写,主要是为了方便查阅。上集主要是介绍编译安装LFS,下集主要是介绍BLFS,编译方向是KDE桌面。续集则是对编译KDE桌面多媒体功能的补 充介绍。再说了,人家琼瑶老太太写还珠格格,都连续写了三部,俺为何就不能写三集?唐师父说:打雷啦,下雨收衣服啊!小平同志说过:不管黑猫白猫,抓得到老鼠的就是好猫。青铜镜模仿着说:不管用啥方法,能够装上LFS/BLFS的就是管用的方法!唐师父读易经:乾以易知,坤以简能。易则易知,简则易从。易知则有亲,易从则有功。有亲则可久,有功则可大。可久则贤人之德,可大则贤人之业。易简,而天下之理得矣;天下之理得,而成位乎其中矣。哈哈哈!上 集 轻松搞定LFS第一章 启 动到下载LiveCD,刻成光盘。俺青铜镜当时下载的LiveCD的版本号是6.2-1。不同版本号的LiveCD是有区别的。请各位看官注意!将LFS的LiveCD放将光驱,从光驱启动,将会看到以下按系列号顺序出现的步骤:01.01boot:按F1将会出现帮助画面。可以设置显示屏的显示配置:引用:795=1280*1024*24794=1280*1024*16792=1024*768*24791=1024*768*16789=800*600*24788=800*600*16 可以在boot后输入linux vga=792或是其他数字以设置屏幕显示的配置。也可以输入引用:TZ=Asia/Shanghai 设置时区。01.02Configure System Clock配置系统时钟02.01 Asia/Shanghai02.02 localtime01.03Regional settingChoose your locale中文有以下各项:引用:03.01 Chinese Traditional BIG503.02 Chinese Traditional UTF803.03 Chinese Traditional EUC-TW03.04 Chinese Simplified GB231203.05 Chinese Simplified GB1803003.06 Chinese Simplified GBK03.07 Chinese Simplified UTF-8 俺青铜镜选的是Chinese Simplified UTF-8这一项。这样,当LiveCD启动startx以后,X的界面就是中文的,很清爽啊!01.04Configrm/edit Setting这里显示默认的自动配置是:引用:locale: zh_CN.UTF8Console keymap: defkeymapConsole font: default8*16autoconverted from charset:X keymap: us 01.05Press Enter to activate this virtual console出现以上提示时,按回车进入控制台。至此,LiveCD算是正式启动完成了。01.06进入控制台以后,先对硬盘进行分区,输入cfdisk命令进行分区。具体的分区方法很简单,这里就省了。以下是我的分区:引用:Name PartType FS Type Size(MB) hda1 Primary linux ext3 3960.95hda2 Primary linux swap/solaris 403.04 01.07格式化分区:mke2fs -jv /dev/hda1 (这是俺的硬盘分区设备号,俺只分一个区,后面fstab文件要用到!)格式化交换分区,同时启动它:引用:mkswap /dev/hda2swapon /dev/hda2 01.08启动X,进入的是XFce桌面管理器:startx01.09Xfce的下面是控制台,控制台有“终端防真程序”,点击一下,启动它。还有一部手册,图标是一个救生圈。打开手册后,将地址指到: /usr/share/LFS-BOOK-6.2-HTML找到indel.html,打开LFS手册。这样,你就可以一边看着手册,一边输入命令了。 哈哈哈。青铜镜的意见和建议:一般情况下,如果命令相对比较短而且容易记住,推荐用手工输入;如果命令比较长而且复杂,甚至是容易出错的,建议用复制的方 法输入命令!要不到了最后系统收工时,因为其中的命令出错而让人前功尽弃,那才是让人不爽!比如下面这条命令:引用:GCC_INCLUDEDIR=dirname $(gcc -print-libgcc-file-name)/include &find $GCC_INCLUDEDIR/* -maxdepth 0 -xtype d -exec rm -rvf ; &rm -vf grep -l DO NOT EDIT THIS FILE $GCC_INCLUDEDIR/* &unset GCC_INCLUDEDIR 飞豹大侠的作法是,不管命令长短,一般都是手工输入太长的,用脚工,据说是佛山无影脚。哈哈哈。对于飞豹大侠过于个性化或是偏执的行为, 青铜镜的看法是:不支持、不赞成、不提倡、不反对、不关注。反正是萝卜青菜,各有所爱嘛,更何况LFS是个性化很强的东西,飞豹大侠爱咋折腾,我们只管看 热闹就是了。没事还可以冲他泼冷水,恶搞一下下也好。据唐师父所掌握的可靠消息,近来江湖人才紧缺啊!为了缓解江湖人才紧缺的问题,飞豹大侠作出了一个伟大的、具有划时代意义的决定:他准备要出书了!此乃青 铜镜的独家新闻!希望广大LINUX粉丝支持飞豹大侠具有里程碑意义的决定!有部戏叫做拿什么来拯救你,我的爱人,青铜镜想来想去,正确的答案是: 钱!当然是得拿钱!我们要支持飞豹大侠,当然得拿出点钱意来呀!为此,青铜镜决定赞助飞豹大侠人民币一块钱,一块钱可以买一个葱油大饼,当飞豹大侠写书到 半夜时,肚子饿了,可以买一个葱油大饼吃!当然,要是飞豹大侠拿青铜镜赞助的一块钱去买一个鸡蛋的话,那样的话前景就更加美好了:鸡蛋里孵出小鸡,小鸡又 生下一堆鸡蛋,又孵出一群小鸡,子子孙孙生生不息,飞豹大侠就可以开个养鸡场了。呵呵 还有,江湖传闻天花大侠在修炼葵花宝典2007,飞豹大侠您老人家得赶紧写书稿呀,要不等你的书出来时,天花大侠的武功早炼好了,那时天花大侠就可以 千秋万载,一统江湖了01.10转到“终端防真程序”,开始LFS的制作历程。剩下的工作,如果你是新手或者是比较懒,只要将手册中的命令选中,然后转到“终端防真程序”里面粘贴、回车就行了。第二章 配 置青铜镜下载的LiveCD是6.2-1版本的,LiveCD中的jhalfs是1.0,这个jhalfs-1.0比较爽啊,只要稍做配置一下,就可以让电 脑自动给俺们编译LFS了,实在是方便呀!当然,也有人反对说,我们做LFS的目的就是学习,还是手工输入一条一条命令比较好。其实青铜镜在前面说过了, 俺想简单、快速、有效地完成从LFS到BLFS的艰巨任务,俺要学习LFS,俺已将LFS的手册打印出来了,拿在手上,天天都可以拜读,当然啦,俺这也是 一种学习方法,你要一条一条命令输入,青铜镜坚决不拦着你,还在精神上支持你哦!唐师父说:我佛慈悲!大伙要爱惜身体呀! 02.01创建分区好了以后挂载目录引用:export LFS=/mnt/lfsmkdir -pv $LFSmount -v -t ext3 /dev/hda1 $LFS (各位看官,请注意自己的分区设备号) 02.02配置jhalfs文件。点开“终端防真程序”,当前的目录就是root,里面就有jhalfs-1.0这个文件夹,先进入jhalfs-1.0这目录在里面编辑配置文件。02.02.01修改LFS/config,输入命令: cd jhalfs-1.0vi LFS/config下面是LFS/config文件的全部内容及编辑说明:引用:# Configuration file for the LFS module# $Id: config 2822 2006-07-16 10:06:03Z manuel $#- Location of fstab file (if empty, a template is created)FSTAB= (注:留空!我们也可以先将fstab写好以后,放到指定位置并在这里填上fstab的路径。)#- Fully qualified path to a kernel config file# If no config file is specified the kernel is NOT compiledCONFIG= (注:留空!我们也可以先行将编译内核的.config放到指定位置并在这里填上路径。)# Get the kernel package and patches even if no configutation file# has been supplied? 0(no)/1(yes)GETKERNEL=1 (注:修改这里,将原来的0改为1)#- Books sources directory# If you have previously checked out the book from the repositoryBOOK=/usr/share/LFS-BOOK-6.2-XML(注:这里原来是空的,将手册的路径写到这里!)#= INTERNAL VARIABLES =# Dont edit it unless you know what you are doing#- Extra files that need be copied to $JHALFSDIRFILES=#- Default stylesheetXSL=lfs.xsl#- Book versionLFSVRS=developmentTREE=trunk/BOOK#- Name of the makefileMKFILE=$JHALFSDIR/Makefile 修改好上面的配置以后,保存退出。(唐师父说:按esc键,接着输入冒号:,在冒号后面输入wq,回车退去。)02.02.02修改common/config,输入命令:vi common/config下面是common/config文件的全部内容及编辑说明:引用:# common configuration file# $Id: config 2799 2006-06-20 23:43:07Z georgeb $#declare -r SVN=svn:/declare -r LOG=000-masterscript.log#- Mount point for the buildBUILDDIR=/mnt/lfs (注:这里原来是build_dir,改为lfs。)# Create SBU and disk usage report 0(no)/1(yes)# NOTE: requires to have bc installed on the hostREPORT=1#= Getting packages =# Files will be retrieved from the local archive SRC_ARCHIVE# (if defined) or the net and will be stored in $BUILDDIR/sources#- Download the source packages 0(no)/1(yes)GETPKG=0#- The local repository for packages/file# Used only if GETPKG = 1# Any missing file will be downloaded and archived here,# if the user has the right priviledges.SRC_ARCHIVE=$SRC_ARCHIVE# - Server used if the file isnt found in SRC_ARCHIVE.# As a last resort, the file will dowloaded from upstream, if possible.SERVER=#= Build options =#- Automatically run the makefile once it has been created 0(no)/1(yes)RUNMAKE=0#- Optimize the build 0-2# 0 = no optimization# 1 = optimize final system only# 2 = optimize both temporary tools and final system# Optimization values are set in optimize/* filesOPTIMIZE=0#- Run test suites 0-3# 0 = none# 1 = only chapter06 Glibc, GCC and Binutils testsuites# 2 = all chapter06 testsuites# 3 = all chapter05 and chapter06 testsuites# (in CLFS, alias to 2)TEST=1(如果在编译安装过程中你需要测试,那么这里不用修改。俺从来都不test,因此俺将这里修改为0。)#- Run the stripping phases 0(no)/1(yes)STRIP=1#- page definition for groff letter/A4PAGE=letter (我国公文习惯使用的纸张尺寸标准是A4,这里改为A4。)#- set default timezone.TIMEZONE=$TZ:-GMT(注:这里是时区。青铜镜一直填写Asia/Shanghai,晨想姐姐推荐我们中华人民共和国的时区。)#- install the optional vim-lang package 0(no)/1(yes)VIMLANG=1#- Language information in /etc/profile See for valuesLANG=$LANG (注:这里是系统语言。推荐en_US.UTF8。有一次,青铜镜在前面第一章第三小节选的是Chinese Simplified UTF-8这一项,这里没有修改,导致jhalfs运行到第六章的6.45. Man-DB-2.4.3时停止了,没办法,只得手工继续编译安装,很不爽!其实,刚刚装好的LFS都是满屏鸟语的,想汉化,还得到后来装上KDE时才方 便呀!)LC_ALL=$LC_ALL # (not used in LFS)#- Include the keymap in the kernel if defined. Path to the# keymap file relative to /usr/share/kbd/keymaps/# (e.g., i386/qwerty/us.map.gz) or none# Not used in LFSKEYMAP=none#= Variables needed by iterative comparison analysis =#- Should some iterative comparison analysis by made? 0(no)/1(yes)COMPARE=0#- The number of final stage builds to create and compare, min. 2, max. 5ITERATIONS=3#- Run ICA testing 0(no)/1(yes)RUN_ICA=0#- Run farce testing 0(no)/1(yes)RUN_FARCE=0#= INTERNAL VARIABLES =# Dont edit it unless you know what you are doing#- Working directoriesSCRIPT_ROOT=jhalfsJHALFSDIR=$BUILDDIR/$SCRIPT_ROOTLOGDIR=$JHALFSDIR/logsTESTLOGDIR=$JHALFSDIR/test-logs#- File listing package contents (from where package sources dir is extracted)PKG_LST=unpacked#- ICA report log directoryICALOGDIR=$LOGDIR/ICA#- farce report log directoryFARCELOGDIR=$LOGDIR/farce 02.03修改optimize/opt_config.d/O3pipe_march,输入命令:vi optimize/opt_config.d/O3pipe_march下面是optimize/opt_config.d/O3pipe_march文件的全部内容:引用:# $Id: O3pipe_march 2677 2006-05-11 20:21:14Z manuel $# MODE O3pipe_march configuration# Usage: - Apply optimization string to each variable# - unset will cause the variable to be not set# instead of just set to null.# Use this as an example for modeA_modeB combined modes# Inherit optimizations from O3pipesource optimize/opt_config.d/O3pipeCFLAGS_O3pipe_march=$CFLAGS_O3pipe -march=pentium4CXXFLAGS_O3pipe_march=$CFLAGS_O3pipe -march=pentium4LDFLAGS_O3pipe_march=$LDFLAGS_O3pipeOTHER_CFLAGS_O3pipe_march=$CFLAGS_O3pipe -march=pentium4OTHER_CXXFLAGS_O3pipe_march=$CXXFLAGS_O3pipe -march=pentium4OTHER_LDFLAGS_O3pipe_march=$LDFLAGS_O3pipe 说明:青铜镜的CPU是AMD Althon XP 2000+,俺在这里将-march=pentium4全部改为-march=athlon-xp。02.04设定环境变量,代码:export SRC_ARCHIVE=/lfs-sources配置至此,差不多可以运行jhalfs啦!输入命令export看看一下设置。02.05好戏来了,执行以下命令:time ./lfs -G -M其间系统会有相应的提示,它会问你,你对刚刚的设置是不是很爽啊?爽的鸟语是不是happy?接下来将是考验你耐心的时刻!如果你的机器性能强劲、速度飞快,估计用不了多长时间,你的LFS半成品就可新鲜出炉了。第三章 收 工当你看到屏幕上有这些鸟语时,也就是你的jhalfs打完收工了:-set-up the boot loader, except if building CLFS with METHOO=boot, You can set-up the host bootloader or the new boot-loader installed on the new system.If the last, you must to mount the virtual file system, re-enter the chroot and be sure that /dev is populated with the required devices before configure the boot-loader. When ready, exit from the chroot and umount the file systems.If you are an experienced LFS user, several of those steps can be skipped or done in a different way. But then, that is something that you already know and there is no need to discuss it here.Have a nice day:-)done Goodbye and thank you for choosing TIME real 192m39.637suser 153m2.200ssys 28m39.990s(机器配置:Athlon XP 2000+ DDR400 256M*2双通道 SWAP:403.04M)刚刚青铜镜说了,至此,你的LFS半成品就可新鲜出炉了。我们还得进行最后的收尾工作!03.01设定系统配置文件03.01.01挂载并填充 /dev 目录引用:mount -bind /dev $LFS/dev 03.01.02挂载虚拟内核文件系统引用:mount -vt devpts devpts $LFS/dev/ptsmount -vt tmpfs shm $LFS/dev/shmmount -vt proc proc $LFS/procmount -vt sysfs sysfs $LFS/sys 03.01.03进入chroot环境引用:chroot $LFS /usr/bin/env -i HOME=/root TERM=$TERM PS1=u:w$ PATH=/bin:/usr/bin:/sbin:/usr/sbin /bin/bash -login 03.01.04设定root password 引用:passwd root 03.01.05编辑/etc/sysconfig/clock引用:# Begin /etc/sysconfig/clockUTC=1 (注:青铜镜一般将这里改为0)# End /etc/sysconfig/clock 03.01.06运行下面的命令创建 /etc/sysconfig/network 文件并设置主机名:引用:echo HOSTNAME= /etc/sysconfig/network 请用您的计算机名替换 lfs ,哈哈,青铜镜建议大伙用自己名字的拼音,这样很有成就感,可以大大满足了自己的虚荣心!不要在这里输入全限定域名(Fully Qualified Domain Name),FQDN 的信息稍后将放在 /etc/hosts 文件里。03.01.07编辑 /etc/hosts 文件: 引用:# Begin /etc/hosts (network card version) localhost alias1 alias2 .# End /etc/hosts (network card version) 把 和 . 更改为特定用户或特别要求所需要的值(如果这台机器要连入一个已存在的网络,并且网络/系统管理员已经给您分配了一个 IP 地址)。 如果您不打算配置网卡,可以采用下面的方式:引用:# Begin /etc/hosts (no network card version) localhost# End /etc/hosts (no network card version) 03.01.08编辑/etc/sysconfig/network-devices/ifconfig.eth0/ipv4文件:引用:ONBOOT=yesSERVICE=ipv4-staticIP=GATEWAY=PREFIX=24BROADCAST=55 03.01.09编辑/etc/resolv.conf文件:引用:# Begin /etc/resolv.confdomain nameserver nameserver # End /etc/resolv.conf 03.01.10编辑/etc/fstab文件。如果你在前面已经做好这个文件,并配置到jhalfs里面,那么这里就可以省略了。引用:# Begin /etc/fstab# file system mount-point type options dump fsck# order/dev/hda1 / ext3 defaults 1 1/dev/hda2 swap swap pri=1 0 0proc /proc proc defaults 0 0sysfs /sys sysfs defaults 0 0devpts /dev/pts devpts gid=4,mode=620 0 0shm /dev/shm tmpfs defaults 0 0# End /etc/fstab (请注意硬盘设备号!一定要按照自己的分区设置,不要照抄青铜镜的!要不你的系统会起不来了!)03.02安装内核和grub03.02.01安裝kernel(如果你已备好.config文件并写入jhalfs的设定路径,则内核早安装好了!)引用:cd /sourcestar -jxvf linux-7.tar.bz2cd linux-7.tar.bz2patch -Np1 -i ./linux-7-utf8_input-1.patchmake mrpropermake menuconfigmakemake modules_installcp -v arch/i386/boot/bzImage /boot/lfskernel-7cp -v System.map /boot/System.map-7cp -v .config /boot/config-7install -d /usr/share/doc/linux-7 &cp -r Documentation/* /usr/share/doc/linux-7cd .rm -rf linux-7.tar.bz2 03.02.02安裝grub运行 grub shell:引用:grubroot (hd0,0) (注意分区设备号!)setup (hd0)quit 创建一个 显示菜单文件定义 GRUB 的启动菜单:引用:cat /boot/grub/menu.lst EOF# Begin /boot/grub/menu.lst# By default boot the first menu entry.default 0# Allow 30 seconds before booting the default.timeout 30# Use prettier colors.color green/black light-green/black# The first entry is for LFS.title LFS 6.2root (hd0,0) (注意硬盘分区设备号!)kernel /boot/lfskernel-7 root=/dev/hda1 (注意你自己的硬盘分区设备号!)EOF FHS 规定 GRUB 的 menu.lst 文件必须链接到 /etc/grub/menu.lst。为了符合这个规定,可以用下面的命令: 引用:mkdir -v /etc/grub &ln -sv /boot/grub/menu.lst /etc/grub 03.03完成,重启系统!首先,退出 chroot 环境:引用:logout 卸载虚拟文件系统:引用:umount -v $LFS/dev/ptsumount -v $LFS/dev/shmumount -v $LFS/devumount -v $LFS/procumount -v $LFS/sys 卸载 LFS 自己的文件系统:引用:umount -v $LFS 重启系统:引用:shutdown -r now至此,我们的LFS算是完美收工了。省心,省事,少麻烦特点是:方便快捷。好了,好话我就不多说了,下面请出我们伟大的、光荣的、正确的唐师父致闭幕 词!唐师父激动了一阵子,忘词了,说:“悟空,看看”怎么样?够简单、快速、有效吧?如果你耐心看到这里,你曾经受到LFS长时间编译的折腾,一定会 对上面的介绍方法心动了,心动不如行动,还不赶紧回去试试!有什么动静回来跟贴什么?你还在手工输入命令?那你一定是飞豹大侠的铁杆粉丝!你看上面4楼的那位大哥,飞豹大侠一定是到过你的心里,并在你的心里面留下一滴眼泪吧?突然想 起齐天大圣一个跟斗云翻到五指山后,想证明自己曾经到过五指山,于是便题词:齐天大圣,至此一游。还顺便撒了一泡尿呵呵,孙大圣这个习惯不好啊!号外:你想知道飞豹大侠的书叫什么名字吗?据江湖小报非著名记者青铜镜和八卦周刊资深记者金步国共同掌握的可靠消息,可以给大伙一个小小的提示:倪萍出了一本书叫做日子,白云大妈也出 了一本书叫做月子下面,大家应该知道我们飞豹大侠的书名了吧?就是星子!啥?星子?白天见星星,跌倒这不晕了吗?呵呵下 集 轻松搞定BLFS第一次LFS收工后正确无误启动时,着实让青铜镜激动了老一阵子,太有成就感了!连盖着被子都想偷笑,太不容易了。后来,听说飞豹大侠编译LFS的次数竟 然达到了108次!而且每一次几乎都是手工完成的。顿时,俺的成就感一下了消失得无影无踪,好象白天见星星,那些星星竟然在偶面前飘来飘去引用:下面是江湖小报非著名记者青铜镜独家专访飞豹大侠的报导:青铜镜:飞豹大侠您好!我是江湖小报的记者青铜镜,非常感谢您老人家能在百忙之中抽出时间接受我们的专访。飞
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 快递服务安全承诺书4篇
- 河北初中化学试卷及答案
- 南充考电工证考试题库及答案
- 技术团队工作交接标准化流程模板
- 质量管控保证工作承诺书9篇范文
- 质量检查流程化及报表填写指导
- 顾客满意程度优化承诺函(8篇)
- 2025年健康保健行业生命健康管理服务模式研究报告及未来发展趋势预测
- 2025年农业行业智慧农业技术创新实践研究报告及未来发展趋势预测
- 员工培训需求评估调查表
- 2025水利五大员(材料员)考试试题及答案
- 学堂在线 大国航母与舰载机 章节测试答案
- MSDS-不锈钢304介绍文档
- 【MOOC】《研究生英语科技论文写作》(北京科技大学)中国大学MOOC慕课答案
- 线性代数试题及答案-线性代数试题
- 贵州省区域地质课件
- HGT 5174-2017 车辆排气管用耐高温涂料
- 急危重症的识别与处理
- 2022年海南老城经济开发区发展有限公司招聘笔试题库及答案解析
- 幼儿园小班健康《手上的病菌》课件
- 实践论矛盾论导读
评论
0/150
提交评论