⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xplore 查看主题 - linux 下编程的三个重要工具!.htm

📁 Linux 下编程的三个重要工具(ZT).rar
💻 HTM
📖 第 1 页 / 共 5 页
字号:
                  alt=管理团队 hspace=3 
                  src="Xplore  查看主题 - Linux 下编程的三个重要工具!.files/icon_mini_groups.gif" 
                  width=12 border=0>管理团队</A>&nbsp; </SPAN></TD></TR>
              <TR>
                <TD vAlign=top noWrap align=middle height=25><SPAN 
                  class=mainmenu>&nbsp;<A class=mainmenu 
                  href="http://bbs.xplore.cn/profile.php?mode=editprofile"><IMG 
                  height=13 alt=用户资料 hspace=3 
                  src="Xplore  查看主题 - Linux 下编程的三个重要工具!.files/icon_mini_profile.gif" 
                  width=12 border=0>用户资料</A>&nbsp; &nbsp;<A class=mainmenu 
                  href="http://bbs.xplore.cn/privmsg.php?folder=inbox"><IMG 
                  height=13 alt=没新信息 hspace=3 
                  src="Xplore  查看主题 - Linux 下编程的三个重要工具!.files/icon_mini_message.gif" 
                  width=12 border=0>没新信息</A>&nbsp; &nbsp;<A class=mainmenu 
                  href="http://bbs.xplore.cn/login.php?logout=true&amp;sid=38971f6fa859c4e0efc2bbfe80e1d56f"><IMG 
                  height=13 alt="退出登陆 [ ZT ]" hspace=3 
                  src="Xplore  查看主题 - Linux 下编程的三个重要工具!.files/icon_mini_login.gif" 
                  width=12 border=0>退出登陆 [ ZT 
            ]</A>&nbsp;</SPAN></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR>
      <TABLE cellSpacing=2 cellPadding=2 width="100%" border=0>
        <TBODY>
        <TR>
          <TD vAlign=bottom align=left colSpan=2><A class=maintitle 
            href="http://bbs.xplore.cn/viewtopic.php?t=154&amp;start=0&amp;postdays=0&amp;postorder=asc&amp;highlight=">Linux 
            下编程的三个重要工具!</A><BR><SPAN class=gensmall><B></B><BR>&nbsp; 
        </SPAN></TD></TR></TBODY></TABLE>
      <TABLE cellSpacing=2 cellPadding=2 width="100%" border=0>
        <TBODY>
        <TR>
          <TD vAlign=bottom noWrap align=left><SPAN class=nav><A 
            href="http://bbs.xplore.cn/posting.php?mode=newtopic&amp;f=18"><IMG 
            alt=发表新贴 src="Xplore  查看主题 - Linux 下编程的三个重要工具!.files/post.gif" 
            align=middle border=0></A>&nbsp;&nbsp;&nbsp;<A 
            href="http://bbs.xplore.cn/posting.php?mode=reply&amp;t=154"><IMG 
            alt=回复主题 src="Xplore  查看主题 - Linux 下编程的三个重要工具!.files/reply.gif" 
            align=middle border=0></A></SPAN></TD>
          <TD vAlign=center align=left width="100%"><SPAN 
            class=nav>&nbsp;&nbsp;&nbsp;<A class=nav 
            href="http://bbs.xplore.cn/index.php">Xplore 论坛首页</A> -&gt; <A 
            class=nav href="http://bbs.xplore.cn/viewforum.php?f=18">UNIX/Linux 
            编程</A></SPAN></TD></TR></TBODY></TABLE>
      <TABLE class=forumline cellSpacing=1 cellPadding=3 width="100%" 
        border=0><TBODY>
        <TR align=right>
          <TD class=catHead colSpan=2 height=28><SPAN class=nav><A class=nav 
            href="http://bbs.xplore.cn/viewtopic.php?t=154&amp;view=previous">上一主题</A> 
            :: <A class=nav 
            href="http://bbs.xplore.cn/viewtopic.php?t=154&amp;view=next">下一主题</A> 
            &nbsp;</SPAN></TD></TR>
        <TR>
          <TH class=thLeft noWrap width=150 height=26>主题作者</TH>
          <TH class=thRight noWrap>贴子内容</TH></TR>
        <TR>
          <TD class=row1 vAlign=top align=left width=150><SPAN class=name><A 
            name=383></A><B>mlsx</B></SPAN><BR><SPAN 
            class=postdetails>超级管理员<BR><IMG alt="" 
            src="Xplore  查看主题 - Linux 下编程的三个重要工具!.files/mlsx.jpg" 
            border=0><BR><BR>注册日期: 2003年12月20日<BR>发贴数量: 716<BR>所在位置: 
            湘潭大学</SPAN><BR></TD>
          <TD class=row1 vAlign=top width="100%" height=28>
            <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
              <TBODY>
              <TR>
                <TD width="100%"><A 
                  href="http://bbs.xplore.cn/viewtopic.php?p=383#383"><IMG 
                  title=发表贴子 height=9 alt=发表贴子 
                  src="Xplore  查看主题 - Linux 下编程的三个重要工具!.files/icon_minipost.gif" 
                  width=12 border=0></A><SPAN class=postdetails>发表时间: 
                  2004年02月12日 22:59<SPAN class=gen>&nbsp;</SPAN>&nbsp; 
                  &nbsp;贴子标题: Linux 下编程的三个重要工具!</SPAN></TD>
                <TD vAlign=top noWrap><A 
                  href="http://bbs.xplore.cn/posting.php?mode=quote&amp;p=383"><IMG 
                  title=引用回复 alt=引用回复 
                  src="Xplore  查看主题 - Linux 下编程的三个重要工具!.files/icon_quote.gif" 
                  border=0></A> </TD></TR>
              <TR>
                <TD colSpan=2>
                  <HR>
                </TD></TR>
              <TR>
                <TD colSpan=2><SPAN class=postbody>CVS, Automake与Autoconf简介 
                  <BR>第一部分 CVS简介 <BR>cvs ( Concurrent Version System 
                  )是一个版本控制系统,什么是版本控制系统呢?简单的说,它可以记录程序代码修改的过程,有一个完整的历史记录( history 
                  )。辟如说,当你在修改程序代码的时候, 不小心写出了一个 bug,但是你可能很久以后才发现多出了这个 bug, 
                  这个时候,cvs 就能很有效的帮助你找出到底是在哪一次的修改中,出现了这个 bug。 <BR>也许你会说, 
                  那我每次都把程序保存起来, 用tar 做好备份不就行了,当然, 你可以这样做, 但是这太浪费空间了! cvs 在版本更改间, 
                  只储存不同的部分, 这样就可以省下很多空间。 <BR>在另一个场合里, 更能显示出 cvs 的好处 
                  ,比如多人一起开发软件的时候。 cvs支持远程访问, 用户可以对他要修改的文件加上正在编辑的标志, 
                  让别人知道他要修改这个文件了。 当然, 一个较大的开发队伍,一般还会需要一个 mailing list 用来沟通。毕竟cvs 
                  只是一个管理程序代码的工具, 他并不扮演沟通的角色。 cvs的同类软件还有rcs和sccs。RCS ( Revision 
                  Control System ) 可以从FSF获得。SCCS ( Source Code Control System ) 
                  由AT&amp;T在SystemV中引入,现在已经被加入X/Open标准( Unix 98? 
                  )。比起这些软件,CVS的要优秀得多,特别是在支持多人远程开发方面。由于CVS出现较新,所以使用上反而没有它们普及。当然,如果您熟悉rcs,您会发现学习cvs非常容易。 
                  <BR><BR>名词 <BR>repository: 意为仓库。在 cvs 里, 它就是你真正存放各历史版本的地方。 
                  pserver: cvs 远程服务器,cvs 有两种工作模式, 一种是 local, 一种是 remote。 
                  一般通过inetd启动pserver。 <BR>CVSROOT: 当使用 cvs 的时候, 要设定 
                  CVSROOT这个环境变量, 或是用 -d 选项来指定该参数,该参数指明你的仓库放在哪里。 <BR><BR>本地( 
                  local )cvs <BR>首先, 确定一个 cvsroot,比如: <BR>export 
                  CVSROOT="/home/joe/cvsroot/" 建立该目录: <BR>mkdir 
                  /home/joe/cvsroot <BR>接着,运行cvs init : <BR>cvs init <BR>cvs 
                  init 会帮你把 cvsroot 初始化。接着, 建立一个要放文件的目录 ( 相当于一个Project ): mkdir 
                  /home/joe/cvsroot/cvsdoc <BR>cd /home/joe/work <BR>cvs 
                  checkout cvsdoc( 或者简写为: cvs co cvsdoc ) 你会看到下面的信息: cvs 
                  checkout: Updating cvsdoc cvs checkout 会把当前最新的版本拷贝到你的当前目录下。 
                  <BR>记住, 不要自己建立 /home/joe/work/cvsdoc, 该目录下还会有一些用于管理的 cvs 
                  相关的信息。 <BR>接着, 进入 cvsdoc 目录, 编辑 cvs.doc 这个文件档案,输入一些信息。 
                  <BR>然后,运行: <BR>cvs add cvs.txt cvs commit -m "Initial 
                  revision." cvs add 就会把 cvs.txt 加入 cvs 维护的文件列表中去。 <BR>cvs 
                  commit 检查当前目录下所有的在文件列表中的文件,并把对他们的改动加入到仓库中。-m 表示这次 commit 的 
                  message,一般说明此次修改的相关信息。 <BR>现在修改一下 cvs.txt,并且,在文件档案的最上面加上 $Id$ 
                  的字样。 <BR>改完之后, 再 commit 一次: <BR>cvs commit -m "Adding new 
                  stuff." <BR>现在看看我们所做的修改: <BR>cvs log cvs.txt <BR>可以看到: <BR>RCS 
                  file: /home/joe/cvsroot/cvsdoc/cvs.txt,v <BR>Working file: 
                  cvs.txt <BR>head: 1.2 <BR>branch: <BR>locks: strict <BR>access 
                  list: <BR>symbolic names: <BR>keyword substitution: kv 
                  <BR>total revisions: 2; selected revisions: 2 <BR>description: 
                  <BR>---------------------------- <BR>revision 1.2 <BR>date: 
                  2000/09/11 11:55:06; author: joe; state: Exp; lines: +2 -0 
                  <BR>i <BR>---------------------------- <BR>revision 1.1 
                  <BR>date: 2000/09/11 11:52:32; author: joe; state: Exp; 
                  <BR>initial version 
                  <BR>================================================================== 
                  <BR>你会看到每次修改加进去的 message。这对开发者,特别是一个大的项目的开发者,其帮助是不言而喻的。 
                  <BR>cvs diff -r 1.1 -r 1.2 cvs.txt <BR>可以看到: <BR>Index: 
                  cvs.txt 
                  <BR>================================================================== 
                  RCS file: /home/joe/cvsroot/cvsdoc/cvs.txt,v <BR>retrieving 
                  revision 1.1 <BR>retrieving revision 1.2 <BR>diff -r1.1 -r1.2 
                  <BR>0a1 <BR>&gt; $Id: cvs.txt,v 1.2 2000/09/11 11:55:06 joe 
                  Exp $ <BR>1a3 <BR>&gt; hehe,sencond time edit it! <BR>这样会显示 
                  1.1 和 1.2 版的 diff, 原本有 1.1 版的人, 只需要用这个 patch 就可以了升级到1.2了! 
                  <BR>再编辑 cvs.txt, 可以发现最上面的 Id 变长了? 加了一代串文字: <BR>$Id: cvs.txt,v 
                  1.2 2000/09/11 11:55:06 joe Exp $ 这显示这个版本的一些相关信息。 <BR>远程( 
                  remote )cvs 
                  <BR>如果我们要做一个比较大的项目,上面讲的本地cvs服务就太简单了,我们要让众多的人可以远程开发程序! 
                  比如我们要用cvs组织起我们的minigui项目。 检查 /etc/services 有没有这两行,没有请加入: 
                  <BR>cvspserver 2401/tcp #CVS network server cvspserver 
                  2401/udp #CVS network server <BR>在 /etc/inetd.conf 加入: 
                  <BR>cvspserver stream tcp nowait root /usr/local/bin/cvs cvs 
                  --allow-root=/home/minigui pserver <BR>mkdir /home/minigui 
                  <BR>要是该设置生效,请重启inetd。 <BR>添加用户anoncvs, 这是要给匿名cvs 
                  用户使用的帐号,其组为nogroup。 新加一个名为 minigui的 group。 添加参与 
                  minigui开发的用户的帐号, 当然, 把他们的 group 设为 minigui。 <BR>cvs -d 
                  /home/minigui init <BR>cd /root/minigui, 这是原来已经存在的版本, 
                  现在我们要把它的东西放进 cvs 仓库里: 比如,我们把minigui的库minigui03放到仓库中: 
                  <BR><BR>cd minigui03;cvs import –m “the lib” minigui03 joe 
                  start <BR><BR>会看到cvs把一个个文件放到仓库中。 <BR>cvs import 的语法为: 
                  <BR><BR>cvs import -m "log msg" projname vendortag releasetag 
                  <BR><BR>vendortag 和releasetag 一般不需要关心,我们这里使用一个用户名和一个start 标志。 
                  <BR>我们把其它相关的project也放到cvs仓库中: <BR><BR>cd miniguiapps03 ; cvs 
                  import –m “the apps” miniguiapps03 joe start <BR>cd 
                  miniguiexec03 ; cvs import –m “the demos” miniguiexec03 joe 
                  start <BR><BR>这样,我们就把minigui的一个cvs服务器建立好了。 <BR>注意, 一个 user 
                  要远程访问某些project, 
                  他必须拥有适当的权限。比如,minigui03这个目录应该属于组minigui,且组可写。才能使minigui组里的用户可以远程参与minigui库的开发。 
                  <BR><BR>现在试试看从远程访问 cvs 服务器。 <BR>首先, 在你的机器上建立一个工作目录, 譬如是 
                  /home/joe/work <BR>cd /home/joe/work <BR>cvs -d 
                  :pserver:joe@www.minigui.org:/home/minigui login <BR>cvs -d 
                  :pserver:joe@www.minigui.org:/home/minigui co minigui03 
                  <BR>cvs -d :pserver:joe@www.minigui.org:/home/minigui co 
                  miniguiapps03 <BR>cvs -d 
                  :pserver:joe@www.minigui.org:/home/minigui co miniguiexec03 
                  <BR>cvs -d :pserver:joe@www.minigui.org:/home/minigui logout 
                  <BR><BR>当你敲入login行时,系统会提示你输入password, 打进去。 <A 
                  href="http://www.minigui.org是cvs服务器所在的机器。/" 
                  target=_blank>http://www.minigui.org是cvs服务器所在的机器。/</A> 
                  该指定被执行后,该 cvsroot 
                  <BR>(:pserver:joe@www.minigui.org:/home/minigui) 和加密后的密码会被存在 
                  ~/.cvspass 里。 <BR>底下几行取出各个project。最后logout。 <BR><BR>cd 
                  minigui03 <BR><BR>做了一些修改后,可以commit出去: <BR><BR>cvs commit -m 
                  "little change" <BR>上面是一般开发者的登陆方法,对于匿名cvs, 
                  可以让其不需要输入口令即可登陆,但是不能让其commint。这需要: <BR>1. 
                  将要开放的project设为全局可读写,因为cvs服务器在操作时要在相应目录下设置读写琐(即需要创建一些临时文件),所以即使是check 
                  out 操作,也需要目录可写。 <BR>2. 为了让匿名用户只有check 
                  out权限,可以在CVSROOT目录下建立一个readers文件,其中每一行是一个用户,这些用户只具有只读权限。比如: 
                  <BR>anonymous <BR>anoncvs <BR>guest <BR>jbrowse <BR>3. 
                  利用passwd文件,使匿名用户不能用其它方式登陆。典型为: <BR>在文件CVSROOT/passwd 中: 
                  <BR>anoncvs:XR4EZcEs0szik <BR>在文件/etc/passwd 中为: 
                  <BR>anoncvs:!:1729:105:Anonymous CVS 
                  User:/home/minigui:/bin/false 
                  <BR>CVSROOT/passwd文件是cvs提供的一个专用于存放cvs密码的文件。它的典型格式为: 
                  <BR>joe:XR4EZcEs0szik:jane 
                  <BR>表示cvs用户joe其实是内部用户jane,其cvs密码加密后被存放在第二个字段,这样就将cvs服务与系统的其它部分分离开来,大大地提高了系统的安全性。 
                  <BR>上面介绍的是使用需要严格的安全认证的pserver服务器,如果您在局域网内开发程序,则可以使用rsh或者ssh,设置非常简单,服务器端只要开放着 
                  rsh或ssh服务器,客户端设置两个环境变量:CVS_RSH与CVSROOT,可以将它们的设置写入预处理脚本,比如使用ssh连接: 
                  <BR><BR>$export CVS_RSH="ssh" <BR>$export 
                  CVSROOT=":ext:joe@www.minigui.org:/home/minigui" <BR><BR>$ cvs 
                  co miniguiexec03 <BR><A 
                  href="mailto:joe@192.9.200.75">joe@192.9.200.75</A>'s 
                  password: <BR><BR>输入密码,就可以得到一份miniguiexec03的拷贝了。 
                  <BR><BR><BR>总结 <BR>以上只是一个简介,cvs还有很多高级功能,如果您需要更详细的信息,请看cvs 
                  的info或者到gnu上下载html版本的manual。 <BR><BR>第二部分 
                  使用Automake,Autoconf生成Makefile <BR>在Unix上写过程序的人尤其是用 C 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -