Monthly Archives: April 2009

以前我不相信很多事情,但现在相信了

     又到了周六晚上,我还是想往常一样,坐在计算机大楼的某个座位上静静地听师兄们发表技术之道。我总是很愿意和那些比我年长的人聊天,因为他们在我的心目中总是那么的博学,那么的有才,那么的深邃,我总是希望在他们的话语中悟出一些东西~~~
     今天晚上又到梁师兄给我们讲专题了:走近百度。
     百度是自己心仪的公司之一,之前总觉得那里离自己很远,很远~~~今天师兄的一个讲座,让我感觉百度
就在自己的身边,感觉好近~~那一个个视频都是一种震撼,一张张图片都是那么的诱人:  理想国际大厦,普天大厦,第三极大厦,上地大厦~~~  

下面是那震撼人心的视频:

        

     

     大一的时候不相信能和百度走得这么近;听了师兄今晚的讲座后才知道,这是真的。

 

    以前不相信很多东西,现在相信了~~~

     没读书的时候,不相信自己家里能有一台电视机。当时家里没有,我和我弟弟就经常跑到隔壁家去看电视,有时候我们被他们轰在门外,不能进去他们家,他们说我们身上脏;我和弟弟很委屈,跑到家里跟妈妈说:妈妈,他们嫌我们脏,不让我们进去他们家里看电视~~妈妈安慰我们说:儿子,没事,以后咱们家有钱了再买。虽然当时我们不信,心想:我们家这么穷,什么时候能买~~但是当时还是很欣慰,很期待的,现在依然还很怀念那种感觉。高二的时候家里终于买电视了,那是占用农田的补贴。终于相信家里能有电视了。  

     没有读书的时候,很羡慕电视上的那些明星,不相信有那么一天,自己能亲眼见到或者接触到那些明星。大一的时候,迪克牛仔来到我们体育馆唱了几首歌曲,当时把我兴奋的,疯狂地转发了好几十条短信;前不久,心目中的神:科比,也在中国弄了一个青葱计划,准备在中国招收徒弟(呵呵,我很想去),原来 ,我也可以有机会亲眼见到心目中的偶像;看完春晚之后,不相信有那么一天,自己也可以有机会亲眼见到小沈阳,但是前不久去他博客瞎逛的时候,我相信了。现在相信了,原来他们都没有住在天上。

      上幼儿园的时候,不相信家里能有一辆轿车来接我回家,现在相信了,以后会有的。

      上小学的时候,不相信每天早上都有1块钱买早餐;高一的时候相信了,原来每天早上真的可以有1块钱买两个包子,甚至高兴的时候,可以再买一杯豆浆和一个鸡蛋。  

      上小学的时候,不相信有一天,自己的手里能撰着红红的一张钞票;初二有一次,在自己家的附近捡到了两百块钱,当时心脏差点吓掉到地上,接着我一个很要好的同学挥霍了;从那时起,开始相信了,原来自己也可以有100块钱。 

       小学毕业的时候,自己考了全班的前列,不相信自己居然进了全县口碑最差的初中;但是,当我只收到那个中学的录取通知书时,我相信了。   

      小学,我不相信很多事情~~~初中依然不相信很多事情~~~ 

      初一的时候,不相信自己第一学期考了全校第一,轰动了整个校园,身边的人不安了:看,那个小孩居然是全校第一;拿到奖学金时,我相信了。

        初二的时候,不相信自己会写了平生的第一封情书给自己暗恋一年多的小学同桌;但是,当把情书递给我的一个好友转交给她时,我相信了。  

      初二的时候,在追她的某一天,不相信她会在我面前把我写给她的情书撕了;呵呵,当时我反应过来的时候,我相信了。

     初二的时候,不相信还会和自己追过的那个女生成为好朋友;在高一我们通了第一封信件的时候,我相信了。   

      初二当自己迷上网络游戏《传奇》的时候,不相信有那么的一天,会有自己的一台电脑;2008年四月份配了台式机之后,我相信了。 

      初三毕业的时候,不相信自己能到外地去读书;当踏进昭通市一中时,自己相信了。 

      高中的时候,依然不相信很多事情~~~~ 

      高一的时候,不相信,当年第一名的我,来到高中以后竟然变得什么也不是;第一次期中考考了全年级几百名之后,相信了,原来,比我厉害的人那么多,我不再那么骄傲;现在想来,也未必是件坏事。

      高一的时候,不相信自己能考到全班的前10名;高考之后相信了,原来,我可以考进前10名的。  

      高二的时候,不相信自己有一天能那么自如的在篮球场上运球;现在相信了。

      刚进大一的时候,我都不知道“下载”是个什么概念,相当羡慕会重装系统的同学;但现在相信了,原来我也可以懂这些东西~~

       以前,不相信自己会拥有很多东西,现在我相信会有的,至少在将来的某一天。

      从现在开始,我要相信很多事情,没错的。
 

 

Gentoo下面从kde3.5升级到kde4.2的经历

 一.首先是安装不上amarok2 

 安装完Gentoo基本系统、kde桌面以后,一款电影播放器和音乐播放器自然是少不了啦。早就听说amarok的大名, 于是就找个机会下载amarok.   (1)emerge -av amarok          接着我一直在那里等,不幸的事情发生了:amarok中的某些包被我系统中的kdebase-startkde和x11-server这两个包block了,当时第一反应就google。         

 后来找到了Gentoo关于portage的官方文档,找到了解决办法:把系统中block的那些包都删除了。但是仔细想想,不对劲啊,那可是kdebase和x11的包啊,不能删除。  但是当时特别的想下载amarok,也没有管那么多,心中还是有些侥幸吧:反正出问题之后还可以安装。终于狠下心把这两个包都删除了。结果出问题了:打开不了home folder和system,我知道出问题了。终于退出桌面,回到基本系统:黑屏幕。我先删除kde3.5和xorg-x11,但是要命的是,在安装显卡驱动时又出错了,当时冒出的一大堆错误我也看不懂,好在之前安装Gentoo基本系统的时候训练好了心态,要不然我又得哭上一场;不想再去google了,于是又做出了如下决定:格式化整个盘,在重新安装Gentoo,这样也省事,要不然等我找到那个错误的话,我已经有60多岁了,呵呵~~   不出意料,安装过程挺顺利的,不过为了保险,还是安装了kde3.5。用了一阵子之后更新系统,但是,又出问题了,我的kdebase-startkde-3.5.10又block了一些包,我当时狂晕,又google,还发邮件给我的师兄,他们的回答出奇的一致:把kde3.5删了,当时把我郁闷的,我终于痛下决心,一定要把kde4.2.1安装到我的电脑上~~~很大的一个原因在下面:             

二.无法安装上sandbox  

第二次安装上kde3.5之后,更新系统,但是安装不了sandbox,冒出很多的错误信息,最后的一行引起了我的注意: FEATURES=”-sandbox” emerge sandbox ,又按照提示重新:emerge  FEATURES=”-sandbox” emerge sandbox,但是不管用,还是出那个错误。我又郁闷了,问题出在那里了???我一直在问,但是终究还是没有结果,最后不得不google,终于找到了解决办法:原来是内核编译是没有打开模拟32位程序运行的选项,打开即可。内核选项如下:    Executable file formats / Emulations      [*] IA32 Emulation    [*] IA32 a.out support  

 这是原文地址: http://justice666.blog.ccidnet.com/blog-htm-do-showone-type-blog-itemid-230384-uid-68180.html     

很感谢这篇文章。我弄明白了,原来是和cpu的位数有关系,于是我又赶紧(1)cd /usr/src/linux;(2)make menuconfig; 按照上面所说的一步一步配置内核。 更糟糕的事情发生了,我的内核选项里面竟然没有 [*] IA32 Emulation        [*] IA32 a.out support      这两项,我当时无语~~~当时几乎又放弃了,但是想想,如果放弃的话,之前的努力不都是白费了吗??安慰了自己之后又开始自己的google之路,我在搜索框中试着输入:

IA32 Emulation。我在google中找到了下面关于AMD64常见问题的帖子:http://www.gentoo.org/doc/zh_cn/gentoo-amd64-faq.xml                我当时吓坏了:我的CPU是AMD64的,但是刚开始我一直按照x86手册安装Gentoo;心情很复杂:该高兴吧,因为自己犯了一个超级严重的错误,在这个偶然的机会被发现了;该难过吧,因为又得重新把系统格式化了,重新安装~~~我从安装Gentoo基本文件那里重新安装,最后还是没有成功,到了chroot那步出了这样的问题:

chroot :cannot run command bin bash’ exec format error。      又google,找到了一篇对我很重要的文章:http://www.gentoo-wiki.info/Chroot_from_a_livecd 就是这段文字救了我:

 Troubleshooting Exec format error If the chroot command returns with the error “chroot: cannot run command `/bin/bash': Exec format error“, this usually indicates that the livecd environment is not compatible with that of the installed system.For example, the error is most frequently seen when trying to chroot to a 64-bit system (eg. amd64) from a 32-bit livecd (eg. x86).The solution is to use a livecd which is using the same architecture as the installed system.  

 我恍然大悟,原来我刻录的盘和我的cpu架构不一样~~我乐坏了,我又迫不及待地下载:install-amd64-minimal-2008.0-r1.iso刻了盘,重新踏上安装Gentoo之路,终于顺利安装完Gentoo基本系统,而且这个选项也有:Executable file formats / Emulation  [*] IA32 Emulation              [*] IA32 a.out support       接下来的重头戏当然是安装kde4,在网上搜了很多的帖子,也吸取了很多的教训,“天道酬勤”,老天爷终于还是很眷顾我,顺利完成了kde4的安装。 一个字:高兴、快乐。     

三.总结一下我成功安装kde4的经验以及一些好的帖子      

  (1)安装好gentoo基本系统之后,先安装nvidia-drivers,然后在安装xorg-x11,官方文档上有;

(2)添加gentoo-overlay-china(参看下面的帖子):

  http://www.linuxsir.org/bbs/thread272832.html 

(3)在/etc/portage下面新建:package.keywords文件,在里面输入以下内容(直接点击链接):package.keywords     (我在2009年4月7日添加的,可能以后有更新,版本:kde4.2)  

这些东西在Gentoo kde4的官方指南上找的,大家可以参考一下,下面的地址是Gentoo kde4官方指南: 

http://www.gentoo.org/proj/en/desktop/kde/kde4-guide.xml   

呵呵,英文的,当时我要是看懂我就已经安装成功了。(PS:但是主要是没有看懂其中的sets那部分东西,现在想来还真的很后悔,因为只不过就是添加几个sets而已。);

(4)添加kde overlay:    #layman -a kde    (以root用户运行)  ;

(5)下载桌面:  #emerge -pv kdebase-startkde  ;   把列出来的USE标记都写好,然后去掉-pv:emerge kdebase-startkde ,你就可以安装kde基本环境了; 如果你想安装kde完整的环境(更多的应用程序),你应该:emerge kde-meta    .至此,期待已久的kde4终于安装成功了~~

大家如果还有什么问题的话可以给我发邮件:zhongyijun48729730@gmail.com 

下面是kde4.2的两个截图: 

          

 

kde4.2 package.keywords

app-arch/libarchive
app-misc/strigi
app-office/akonadi-server
app-text/ebook-tools
dev-cpp/eigen:2
>=dev-libs/libical-0.33-r1
dev-libs/libzip
dev-libs/soprano
>=dev-util/cmake-2.6.2
>=kde-base/qimageblitz-0.0.4
media-sound/phonon
>=sci-mathematics/gmm-3.0
>=x11-apps/xinit-1.0.5-r2

kde-base/akonadi:4.2
kde-base/akregator:4.2
kde-base/amor:4.2
kde-base/ark:4.2
kde-base/automoc
kde-base/blinken:4.2
kde-base/bomber:4.2
kde-base/bovo:4.2
kde-base/cervisia:4.2
kde-base/dolphin:4.2
kde-base/dragonplayer:4.2
kde-base/drkonqi:4.2
kde-base/gwenview:4.2
kde-base/juk:4.2
kde-base/kaddressbook:4.2
kde-base/kalarm:4.2
kde-base/kalgebra:4.2
kde-base/kalzium:4.2
kde-base/kamera:4.2
kde-base/kanagram:4.2
kde-base/kapman:4.2
kde-base/kappfinder:4.2
kde-base/kapptemplate:4.2
kde-base/kate:4.2
kde-base/katomic:4.2
kde-base/kbattleship:4.2
kde-base/kblackbox:4.2
kde-base/kblocks:4.2
kde-base/kbounce:4.2
kde-base/kbreakout:4.2
kde-base/kbruch:4.2
kde-base/kbugbuster:4.2
kde-base/kcachegrind:4.2
kde-base/kcalc:4.2
kde-base/kcharselect:4.2
kde-base/kcheckpass:4.2
kde-base/kcminit:4.2
kde-base/kcmshell:4.2
kde-base/kcolorchooser:4.2
kde-base/kcontrol:4.2
kde-base/kcron:4.2
kde-base/kdeaccessibility-colorschemes:4.2
kde-base/kdeaccessibility-iconthemes:4.2
kde-base/kdeaccounts-plugin:4.2
kde-base/kdeartwork-colorschemes:4.2
kde-base/kdeartwork-desktopthemes:4.2
kde-base/kdeartwork-emoticons:4.2
kde-base/kdeartwork-iconthemes:4.2
kde-base/kdeartwork-iconthemes:4.2
kde-base/kdeartwork-kscreensaver:4.2
kde-base/kdeartwork-sounds:4.2
kde-base/kdeartwork-styles:4.2
kde-base/kdeartwork-wallpapers:4.2
kde-base/kdebase-cursors:4.2
kde-base/kdebase-data:4.2
kde-base/kdebase-desktoptheme:4.2
kde-base/kdebase-kioslaves:4.2
kde-base/kdebase-startkde:4.2
kde-base/kdebugdialog:4.2
kde-base/kdedglobalaccel:4.2
kde-base/kdegraphics-strigi-analyzer:4.2
kde-base/kde-l10n:4.2
kde-base/kdelibs:4.2
kde-base/kdemaildir:4.2
kde-base/kde-menu:4.2
kde-base/kde-menu-icons:4.2
kde-base/kdemultimedia-kioslaves:4.2
kde-base/kdenetwork-filesharing:4.2
kde-base/kdepasswd:4.2
kde-base/kdepim-icons:4.2
kde-base/kdepim-kresources:4.2
kde-base/kdepimlibs:4.2
kde-base/kdepim-strigi-analyzer:4.2
kde-base/kdepim-wizards:4.2
kde-base/kdeplasma-addons:4.2
kde-base/kdesdk-kioslaves:4.2
kde-base/kdesdk-misc:4.2
kde-base/kdesdk-scripts:4.2
kde-base/kdesdk-strigi-analyzer:4.2
kde-base/kdessh:4.2
kde-base/kdesu:4.2
kde-base/kde-wallpapers:4.2
kde-base/kdf:4.2
kde-base/kdialog:4.2
kde-base/kdiamond:4.2
kde-base/kdm:4.2
kde-base/kdnssd:4.2
kde-base/kdnssd:4.2
kde-base/keditbookmarks:4.2
kde-base/kephal:4.2
kde-base/kfile:4.2
kde-base/kfilereplace:4.2
kde-base/kfind:4.2
kde-base/kfloppy:4.2
kde-base/kfourinline:4.2
kde-base/kgamma:4.2
kde-base/kgeography:4.2
kde-base/kget:4.2
kde-base/kgoldrunner:4.2
kde-base/kgpg:4.2
kde-base/khangman:4.2
kde-base/khelpcenter:4.2
kde-base/khotkeys:4.2
kde-base/kiconfinder:4.2
kde-base/kig:4.2
kde-base/killbots:4.2
kde-base/kimagemapeditor:4.2
kde-base/kinfocenter:4.2
kde-base/kioclient:4.2
kde-base/kiriki:4.2
kde-base/kiten:4.2
kde-base/kjots:4.2
kde-base/kjumpingcube:4.2
kde-base/kleopatra:4.2
kde-base/klettres:4.2
kde-base/klines:4.2
kde-base/klinkstatus:4.2
kde-base/klipper:4.2
kde-base/kmag:4.2
kde-base/kmahjongg:4.2
kde-base/kmail:4.2
kde-base/kmailcvt:4.2
kde-base/kmenuedit:4.2
kde-base/kmimetypefinder:4.2
kde-base/kmines:4.2
kde-base/kmix:4.2
kde-base/kmousetool:4.2
kde-base/kmouth:4.2
kde-base/kmplot:4.2
kde-base/knetattach:4.2
kde-base/knetwalk:4.2
kde-base/knetworkconf:4.2
kde-base/knewstuff:4.2
kde-base/knode:4.2
kde-base/knotes:4.2
kde-base/knotify:4.2
kde-base/kode:4.2
kde-base/kolf:4.2
kde-base/kollision:4.2
kde-base/kolourpaint:4.2
kde-base/kommander:4.2
kde-base/kompare:4.2
kde-base/konqueror:4.2
kde-base/konquest:4.2
kde-base/konsole:4.2
kde-base/kontact:4.2
kde-base/kontactinterfaces:4.2
kde-base/kontact-specialdates:4.2
kde-base/kopete:4.2
kde-base/korganizer:4.2
kde-base/kpasswdserver:4.2
kde-base/kpat:4.2
kde-base/kpilot:4.2
kde-base/kppp:4.2
kde-base/kquitapp:4.2
kde-base/krdc:4.2
kde-base/kreadconfig:4.2
kde-base/kreversi:4.2
kde-base/krfb:4.2
kde-base/krosspython:4.2
kde-base/krossruby:4.2
kde-base/kruler:4.2
kde-base/krunner:4.2
kde-base/ksame:4.2
kde-base/ksaneplugin:4.2
kde-base/kscd:4.2
kde-base/kscreensaver:4.2
kde-base/kshisen:4.2
kde-base/ksirk:4.2
kde-base/ksmserver:4.2
kde-base/ksnapshot:4.2
kde-base/kspaceduel:4.2
kde-base/ksplash:4.2
kde-base/ksquares:4.2
kde-base/kstars:4.2
kde-base/kstart:4.2
kde-base/kstartperf:4.2
kde-base/kstartupconfig:4.2
kde-base/kstyles:4.2
kde-base/ksudoku:4.2
kde-base/ksudoku:4.2
kde-base/ksysguard:4.2
kde-base/ksystemlog:4.2
kde-base/ksystraycmd:4.2
kde-base/kteatime:4.2
kde-base/ktimer:4.2
kde-base/ktimetracker:4.2
kde-base/ktimezoned:4.2
kde-base/ktouch:4.2
kde-base/ktraderclient:4.2
kde-base/kttsd:4.2
kde-base/ktuberling:4.2
kde-base/kturtle:4.2
kde-base/ktux:4.2
kde-base/kubrick:4.2
kde-base/kuiserver:4.2
kde-base/kuiviewer:4.2
kde-base/kurifilter-plugins:4.2
kde-base/kuser:4.2
kde-base/kwallet:4.2
kde-base/kwalletd:4.2
kde-base/kweather:4.2
kde-base/kwin:4.2
kde-base/kwordquiz:4.2
kde-base/kwrite:4.2
kde-base/kwrited:4.2
kde-base/kxsldbg:4.2
kde-base/libkcddb:4.2
kde-base/libkcompactdisc:4.2
kde-base/libkdcraw:4.2
kde-base/libkdeedu:4.2
kde-base/libkdegames:4.2
kde-base/libkdepim:4.2
kde-base/libkexiv2:4.2
kde-base/libkholidays:4.2
kde-base/libkipi:4.2
kde-base/libkleo:4.2
kde-base/libkmahjongg:4.2
kde-base/libkonq:4.2
kde-base/libkpgp:4.2
kde-base/libksane:4.2
kde-base/libksieve:4.2
kde-base/libkworkspace:4.2
kde-base/libplasmaclock:4.2
kde-base/libtaskmanager:4.2
kde-base/lilo-config:4.2
kde-base/lokalize:4.2
kde-base/lskat:4.2
kde-base/marble:4.2
kde-base/mimelib:4.2
kde-base/nepomuk:4.2
kde-base/nsplugins:4.2
kde-base/okteta:4.2
kde-base/okular:4.2
kde-base/parley:4.2
kde-base/phonon-kde:4.2
kde-base/plasma-apps:4.2
kde-base/plasma-workspace:4.2
kde-base/powerdevil:4.2
kde-base/printer-applet:4.2
kde-base/pykde4:4.2
kde-base/renamedlg-plugins:4.2
kde-base/solid:4.2
kde-base/solid-hardware:4.2
kde-base/soliduiserver:4.2
kde-base/step:4.2
kde-base/superkaramba:4.2
kde-base/svgpart:4.2
kde-base/sweeper:4.2
kde-base/system-config-printer-kde:4.2
kde-base/systemsettings:4.2
kde-base/umbrello:4.2

# meta ebuilds
kde-base/kdeaccessibility-meta:4.2
kde-base/kdeadmin-meta:4.2
kde-base/kdeartwork-meta:4.2
kde-base/kdebase-meta:4.2
kde-base/kdeedu-meta:4.2
kde-base/kdegames-meta:4.2
kde-base/kdegraphics-meta:4.2
kde-base/kde-meta:4.2
kde-base/kdemultimedia-meta:4.2
kde-base/kdenetwork-meta:4.2
kde-base/kdepim-meta:4.2
kde-base/kdesdk-meta:4.2
kde-base/kdetoys-meta:4.2
kde-base/kdeutils-meta:4.2

搞定断错误(Segmentation faults)和两次释放内存的问题

我满怀信心的编写了链表函数,结果运行时得到了两个错误:

1.段错误(Segmentation faults)

  我当时编写了一个链表的排序函数如下:

  void Linkedlist::sort()
    //to sort the list
     {
          int data = 0;
   
          Node* p1 = head;
         Node* p2 = head;
   
         if(head != NULL)
          {
          //selection sort
           while(p2 -> next != NULL)
           {
             while(p1 != NULL)  
             {
              p1 = p1 -> next; //move p1 to next node  (问题就出现在这里,因为p1 -> next 可能是NULL
   
             //exchange two node’s data
               if(p1 -> data <= p2 -> data)
               {
                 data = p1 -> data;
                 p1 -> data = p2 -> data; 

                  p2 -> data = data;
             }
             }
   
             p2 = p2 -> next; //move p2 to the next node
             p1 = p2;
            }
          }
     }


当时我去google了一下,找到了很多的帖子,总结起来有一下的几个原因:

1。 针没有赋值;
2。 量赋值类型有错误。

3。数组越界也能产生断错误;

4。 最主要的错误就是声明了指针,但是没有初始化 ,结果再后来的时候进行间接引用 ,就出现问题了。


又找到了一个很好的英文网址:

http://en.wikipedia.org/wiki/Segmentation_fault   


我也感觉到我很大一部分原因出现在指针的操作上了,但是一直没有看出来,后来就不得不上csdn,终于在那些大牛人的帮助下搞定了,超级感谢他们。     

2.两次释放内存,出现:double free or corruption (fasttop): 0x0890e008   

*** glibc detected *** ./l1: double free or corruption (fasttop): 0x0890e008 ***
======= Backtrace: =========
/lib/libc.so.6[0xb7d0ba00]
/lib/libc.so.6(cfree+0x89)[0xb7d0d6f9]
/usr/lib/gcc/i686-pc-linux-gnu/4.1.2/libstdc++.so.6(_ZdlPv+0x21)[0xb7ebc1a1]
./l1(__gxx_personality_v0+0x279)[0x8048a01]
./l1(__gxx_personality_v0+0x29d)[0x8048a25]
./l1[0x8048e60]
/lib/libc.so.6(__libc_start_main+0xdc)[0xb7cbbfdc]
./l1(__gxx_personality_v0+0x59)[0x80487e1]

======= Memory map: ========
08048000-0804a000 r-xp 00000000 08:03 1271041    /home/zhongyijun/Datastructures/list/stack/3.2/l1
0804a000-0804b000 r–p 00001000 08:03 1271041    /home/zhongyijun/Datastructures/list/stack/3.2/l1
0804b000-0804c000 rw-p 00002000 08:03 1271041    /home/zhongyijun/Datastructures/list/stack/3.2/l1
0890e000-0892f000 rw-p 0890e000 00:00 0          [heap]
b7b00000-b7b21000 rw-p b7b00000 00:00 0
b7b21000-b7c00000 —p b7b21000 00:00 0
b7ca5000-b7ca6000 rw-p b7ca5000 00:00 0
b7ca6000-b7dd0000 r-xp 00000000 08:03 2932840    /lib/libc-2.6.1.so
b7dd0000-b7dd2000 r–p 0012a000 08:03 2932840    /lib/libc-2.6.1.so
b7dd2000-b7dd3000 rw-p 0012c000 08:03 2932840    /lib/libc-2.6.1.so
b7dd3000-b7dd6000 rw-p b7dd3000 00:00 0
b7dd6000-b7de0000 r-xp 00000000 08:03 3228413    /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/libgcc_s.so.1
b7de0000-b7de1000 r–p 00009000 08:03 3228413    /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/libgcc_s.so.1
b7de1000-b7de2000 rw-p 0000a000 08:03 3228413    /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/libgcc_s.so.1
b7de2000-b7e06000 r-xp 00000000 08:03 2932821    /lib/libm-2.6.1.so
b7e06000-b7e07000 r–p 00023000 08:03 2932821    /lib/libm-2.6.1.so
b7e07000-b7e08000 rw-p 00024000 08:03 2932821    /lib/libm-2.6.1.so
b7e08000-b7ee6000 r-xp 00000000 08:03 3228412    /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/libstdc++.so.6.0.8
b7ee6000-b7eea000 r–p 000dd000 08:03 3228412    /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/libstdc++.so.6.0.8
b7eea000-b7eeb000 rw-p 000e1000 08:03 3228412    /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/libstdc++.so.6.0.8
b7eeb000-b7ef2000 rw-p b7eeb000 00:00 0
b7eff000-b7f01000 rw-p b7eff000 00:00 0
b7f01000-b7f02000 r-xp b7f01000 00:00 0          [vdso]
b7f02000-b7f1c000 r-xp 00000000 08:03 2932839    /lib/ld-2.6.1.so
b7f1c000-b7f1d000 r–p 00019000 08:03 2932839    /lib/ld-2.6.1.so
b7f1d000-b7f1e000 rw-p 0001a000 08:03 2932839    /lib/ld-2.6.1.so
bfd08000-bfd1d000 rw-p bffeb000 00:00 0          [stack]
已放弃

又查了很多的帖子,调试了好几次程序,但是弄错了方向,我还以为是我的creat函数出错呢,还是没有找出来,不得不再次上csdn,在几个人的提醒下终于发现自己的析构函数有问题了,果真是释放了好几次内存: 

Linkedlist::~Linkedlist()
{
    deleteL();

void Linkedlist::deleteL()
//delete the linkedlist 
{
    Node* p1 = head;
    Node* p2 = head;

    if(head != NULL)
    {
        while(p1 != NULL)
        {
            p1 = p1 -> next; //move p1 to the next node 
            delete p2; //delete the previous node       (这里出现问题,因为p2没有继续移动) 
        }  
        head = NULL;
    }
}

哎,终于搞定了,学了不少,既学会了使用gdb,又长了见识~~


终于完成Gentoo 2008的安装,快要吐血啦~~

说明:本文乃原创,如需转载,请注明出处~~~

随着昨天早上scim 中文输入法的安装,我的Gentoo终于算是基本竣工了,说是竣工,一点也不夸张,因为这确实是一个浩大的工程~~哎,一句话,累~~~,不过,我很高兴,很充实,我真的学了很多~~~

 从元旦的那天晚上11点30分开始安装,到昨天早上,算起来,怎么也得有20天的时间来安装这个系统了,每天平均的时间在四个小时以上~~~我知道安装Gentoo会花很多的时间,所以不得不抽期末的时间来安装,况且恰巧元旦的那天正好碰上通宵供电,当时我就乐了,心想:有这样的机会,三天左右我还不安装成功???   呵呵,事实证明我好幼稚,我踏上了一条长长的吐血之路~~安装的过程中出现老多的问题了。  

我想把这个安装过程记录下来,还有一些精彩的截图,希望对需要的朋友有一些用处,当然这里没有官方安装文档详细,这里提供的一些细节问题还是值得你注意的,比如说汉化的方面官方文档的说明就让我不太满意。官方安装文档,很详细(注意选对版本,比如说,你的机器是64位的,你就要选择amd64的):  

http://www.gentoo.org/doc/zh_cn/handbook/ 

 

下面是我总结安装过程中的一些注意事项:

一.我装的是双系统,分区状况:

/dev/sda1  Windows XP C 盘(11G); 

/dev/sda2  Gentoo boot 分区(43M);

/dev/sda3 Gentoo根(/)分区(60G);

/dev/sda5  Gentoo Swap 分区(400M);

/dev/sda6  Windows XP D 盘(62G);

/dev/sda7  Windows XP  E盘(18G).

先琢磨你如何安排你的分区,在运行下面的命令:

分区命令:cfdisk  /dev/sda(最好不要用fdisk /dev/sda 或者 fdisk /dev/hda,因为这个分区工具你看不到你的分区状况,Gentoo安装手册上用的就是这个工具,但是我觉得甚是不好用,强烈不推荐,你不信你可以试试); 

 之后会出现你硬盘的信息,按界面分区就可以了~~

我的情况:

/dev/sda2   /boot分区(50M);

/dev/sda3   /  分区(60G);

/dev/sda5   /swap 分区(400M);

 

二.注意:你如果安装双系统的话,一定一定要把你硬盘上的第一个分区给windows 的C盘,因为windows安装盘默认把硬盘的第一个分区当成C盘,你如果把linux的分区安装在第一个分区里,之后你安装windows的时候就会出错,我试过了。      

三.我当时安装时候的一些精彩截图

1. stage3

 

   

2.下载并安装portage快照

 

 

 


 
  3.选择镜像站点
    


4.更新portage 

 

 

 

 

 

 

5.安装内核源码

 

 

6.配置内核

 

 

7.编译内核 

 

 

8.安装内核 

这步一定不要忘记了,要不然后果会很严重:系统启动的时候会出现找不到镜像文件的错误~~~

#cp arch/i386/boot/bzImage/boot/kernel-*-r* (写上你内核的相应版本)
 
 

  在安装完基本系统之后,紧接着就开始安装桌面:kde,gnome或者Xface,

由你自己去选择;安装手册上有详细介绍,我这里也不多说了。

我安装系统守护进程工具,网络工具等等的一些东西:

系统日志工具:

    


cron守护进程:


安装网络工具:

 

 

 

下面我总结我安装过程中出现的错误,或许对大家的帮助很大:



 一.配置内核

问题一:无法找到root文件系统

这里出的问题是最多的,也是最难解决的,我在这里折腾了将10天左右。

我当时的错误信息如下:

(1)Root-NFS:No NFS server available,giving up;
(2)VFS:Unable to mount root fs via NFS,trying floppy;
(3)VFS:Cannot open root device "sda3" or unknown block(2,0);
(4)Please append a correct "root = " boot option;

here are the available patitions:0b00  1048575 sr0 drivers:sr;
(5)kernel panic -not syncing:VFS:

Unable to mount root fs on unknown block(2,0);  


   注意最后的那行,问题就是那里了,后来查了无数的帖子,发了无数的帖子,

最后终于在gentoo中文论坛上找到问题的解决办法了:

http://www.linuxsir.org/bbs/thread320006.html

我超级感谢这个帖子,弄去弄来原来是我的主板驱动:

Device Drivers --->ATA/ATAPI/MFM/RLL support

--->AMD and nVidia IDE support);

和scsi驱动:

Device Drivers --->SCSI device support --->SCSI disk support);

还有SATA驱动:

Device Drivers --->

Serial ATA (prod) and Parallel ATA (experimental) drivers

--->NVIDIA SATA support;  

没有编进内核,也就是选项前面必须有“*”号,不能把他们编译成模块;   

 

问题二:无法找到内核在什么地方

我当时出现的信息如下:

Error 15: File not found
Press any key to continue...  

 

原因:我没有拷贝内核镜像,也就是忘记如下命令:

# cp arch/i386/boot/bzImage/boot/kernel-*-gentoo-*; 

导致系统启动的时候找不到内核镜像,也就是/boot分区中没有kernel;  

解决方法,用安装盘进入系统重新配置,编译和拷贝内核;

 

二.安装桌面

 

开始我就决定安装GNOME了,可惜电脑不争气,没有安装成功,代码如下:

 (1)vim /etc/make.conf

(2)USE="-qt3 -qt4 -arts -kde X dbus gtk gnome hal avahi";

(3)emerge gnome 

我下载gnome时候的截图:

(3)$ echo "exec gnome-session" > ~/.xinitrc;

(4)$startx;(以普通用户运行);

 当时我还满怀信心地看见那熟悉的桌面,可惜电脑还是出现
可怕的黑屏幕(PS:其实我很喜欢黑屏幕的,感觉很深邃,但是那个时候就是害怕啊~~呵呵~~)
心想,完了,以后不会一直和黑屏幕打交道吧??
静下心来想想,没事,安装不了GNOME,为何不试试KDE呢??听说KDE比GNOME漂亮多了~~~ 抱着试试的心态,又踏上安装kde桌面的征程:
我当时的代码:
(1)emerge kde-meta;
(2)$ echo "exec startkde" > ~/.xinitrc;
(3)$startx; 
 
结果还是那个黑屏幕,当时差点死心了,真的怕了黑屏幕了,
不过我还是不死心,想想:是不是我少打了哪个命令了??
再折回安装手册仔细地看,原来startkde这个东西没有安装,
于是我又试试:
 #emerge kdebase-startkde; 
接着:$startx(切换到普通用户)  
哈哈,桌面终于露出来了:蓝蓝的,色感极佳~~我的天啊,
当时把我兴奋的,我都高兴了好几个小时呢,我记得那天晚上 好像是我寒假最快乐的时光了,哈哈~~

看看我安装kde成功后的画面:

 


  

kde真美~

呵呵,不过还是有些遗憾,至今仍然没有弄清楚GNOME出现的错误~~~
我和KDE的情况做了比较,我有如下想法:startgnome没有安装~~
呵呵,乱猜的,没有试验过~~

 
 
三.系统的汉化工作
    这个问题也折腾了我将近一个星期的时间,开始以为按照
官方手册上的步骤就能看到中文,可是,异想天开啊:
#vim /etc/make.conf
LINGUAS="zh_CN zh_CN.UTF-8"  
#emerge kde-i18n
 后来google了一些gentoo中文美化的一些资料,终于
找到解决办法了,下面是那个对我中文化帮助很大的那个地方:
http://www.91linux.com/html/linux_pub/gentoo/20070202/558.html
 (看最后的部分就行了,前面的没必要看)  
问题算是解决了,想想看,原来是自己没有下载中文字体~~

    我又按照上面那个地址安装了输入法,但是也没有成功,
不得不google了一下,终于找到下面的好帖子:

http://www.cnblogs.com/wllyy189/archive/2008/09/28/1301195.html
呵呵,这个地方又救了我一命,后来仔细一想,原来是环境变量没有设置正确~~~
至此,我心里踏实了很多啊~~~
强烈奉劝各位,在emerge kde-i18n之后一定要找一些中文美化的
帖子,因为官方文档上没有提到中文字体的安装问题,像上面我贴出来的地址就是很好的一个地方~~
唉,20多天的努力算是有了一个结果了,回想这个过程,感慨颇多,但最刻骨铭心的是:
有时候坚持是多么重要啊!!! 有什么问题的话可以给我发邮件:
zhongyijun48729730@gmail.com