首页 > 系统 > 关键词  > linux服务器最新资讯  > 正文

LINUX作CVS服务器之二

2008-09-08 17:56 · 稿源:互联网

软件库的备份与移动

备份软件库中的文件和备份其他文件并没有不同,但你需要一个备份工具开锁住CVS.这样,你必须先注册一个可以读取软件库的用户,打开CVS软件库,你需要编辑`#cvs.rfl’文件.

当你想用一备份的软库,恢复原来的库时,如果原库在你备份后作过改动.CVS将报错.你必须按以下的步骤来

?得到一个新的工作目录

?拷贝上一次提交失败的文件(,当然不能拷贝CVS的目录文件)

?在新目录下工作,使用cvsupdate或cvsdiff等命令指出那些作过改动,在使用cvscommit将改动保存到软件库.

你如果想移动一个软件库到其他地方也很简单.最简单的方法是将向要移动的目录创到一个新的目录中去.如果你想重新使用原来的目录的话,只能手工修改`CVS/Repository'和`CVS/Root',除非你精于此道,否则不建议使用.

4.2CVS的远程用户管理

作为一个CVS服务器,应该满足两点.首先保证软件库有足够大的空间.其次保证有不小于32M的内存,服务器为每一个连接它的用户产生两个进程,在子进程上的花销较小.但如果网络带宽不够,在父进程上的花销是巨大的.

另外一个大的花销是diff文件,当源文件很大时,对他进行验证或检测的花销也很大.

远程用户的登录认证方式

以rsh为例行远程登录

Cvs服务器使用rsh允许用户连接时应该配置.rshosts,假设在远程主机tom.exsample.com上的用户tom需要连接到funame.simple.com这个cvs服务器上工作.应该编辑服务器端的bach目录的.rshosts,在其中加入

Tom.exsample.comtom

客户端可运行rsh–lbachfuname.simple.com‘echo@PATH

以确定自己可以连接到CVS服务器上,并且客户应将显示的这个路径写入.bashrc或cshrc(而不是.logiin或.profile.)

除此之外,客户端还可以定义环境变量CVS_SEVER.来定义主机的位置.在服务器端,修改/etc/ineted.conf文件,来告诉服务器,在获得特定端口的连接时,运行cvssever.这个端口号缺省值是:2041.当然为了不再每次使用时都要进行设置,可以在用户端通过定义环境变量CVS_AUTH_PORT来使用.

如客户端的ineted允许使用原始调用,只需在/etc/ineted.conf文件中添加下面的句子即可2401streamtcpnowaitroot/usr/local/bin/cvscvs–f–allow–root=/cvsrootpserver

另外还可以用-T选项来定义缓冲目录.

—allow–root定义了可供用户使用的软件库,如果服务器上有更多的软件库需要重新使用这个句子.另外,内部用户可以这样定义环境变量CVSROOT

:pseve:usr@funam.simple.com:/cvsroot

其中usr是用户名(linux系统的)funam.simple.com是cvs服务器,并假设/cvsroot是软件库的目录名.远程用户可用下面的形式:

:etx:psever:usr@funam.silple.com:/cvsroot

:etx:定义了是远程用户,其余同上.

如果客户的ineted采用一般调用,只需在/etc/seveice中加入下面这一句:

cvspsever2401/tcp

重新启动ineted使其读取初始化文件即可.

CVS对于用户的管理.在缺省状态下(如用telnet登陆),是和linux系统使用同样的用户名与密码.即:只要你登陆linux系统,就拥有$CVSROOT的只读权限..当然,对某一软件的开发者来说必须拥有相对应目录的读写权限,才能完成源代码的升级等工作.因此,CVS也提供了自己的用户认证体系以更加方便的管理用户.

在服务器端的$CVSROOT/CVSROOT下可以有一个passwd文件(可以用环境变量CVS_PASSFILE来定义.)来记录cvs的用户信息.他采用的是和linuxetc/passwd同样的组织形式.同样,它的passwold也是经过linux标准加密方式的.下面是一个passwd的内容

anyone:

tom:xyzkue

mary:yuio:pubcvs

第一行的意思是,当用anyone的身份登录时,不需要任何密码.即使打入空串也可以.当然在这种方式下你得到的可能只是只读权.第二行的意思是,tom登录时需要敲入passwold.该passworld加密后是xyzkue.以这种方式登录后.一般可以获得较高的权限.

第三行的意思是,当mary登录时需要敲入密码.进入和系统用户相同的软件库.这样作的目的是因为.cvs将纪录它的用户在软件库中的所有的动作.定义和系统使用者不同的身份.使用cvs.

例如;使用用户tom可以用以下的方式登录:

$cvs–d:etx:tom@funam.simple.com:/cvsrootlogin

(如果tom这个用户名在远端可内部是相同的,则tom@还可以省略)

同时,可以使用cvsloginout将所有的环境变量撤销.

使用GASSAPI接入

CVS还支持使用GASSAPI的TCP直接接入.在使用安转之前,需要将CVS重新编译以获得GASSAPI的支持.运用–with–gassapi来连接,或者用-a选向来连接.使用GASSAPI的认证等方式余地一种方式相同.

但在登录时.需要重新定义$CVSROOT如:

$cvs–d:gsever:usr@cvssever.com:/cvsrootlogin

使用kerberos直接连接

最简单的使用rsh的方法如上说述.这种方法的主要特点是所有数据都通过一个额外的程序.非常费时.如果安装了kerberos.可以直接用TCP连接.

同样CVS需要重新编译以获得keberos的支持可用--with-krb4来连接.这样传输的数据是没有加密的.如果要获得安全.必须在服务端和客户端都用`--enable-encryption来连接.此时,你应用通用的变量-x来要求加密.

在服务端需要编辑inetd.conf来运行cvskserver.客户端的缺省端口号是1999,如果想用其他端口号.需在用户端定义CVS_CLIENT_PORT

此时的登录命令应是

cvs-d:kserver:faun.example.org:/usr/local/cvsrootcheckoutfoo

用fork连接

用这方式,可以通过远程协议连接本地硬盘的软件库.换句话说,他能和:local:有相同的功能用这种方式的登录命令是

cvs-d:fork:/usr/local/cvsrootlogin

和用:etx:一样.缺省的主机名是cvs

三、cvs服务器架与应用实例

1.服务器安装配置

假设目前有一工作项目,需要用cvs来管理员码.这个开发组为内部3人,器ip分别是:192.168..1.2(用户名t1),192.168.1.3)(用户名时t3),193.168.1.3(用户名t3),远程用户一人,其主机是tom.example.com.(用户名是tom)

如果你已经安装了cvs,建立一cvs主机为cvs.exam.org的服务器非常简单.步骤大致如下:

1.1以root身份登录.建立软件库(repository)

$exportCVSROOT=/cvsroot

$mkdir/cvsroot

$cd/cvsroot

$cvsinit

1.2设置执行权限

$chmod/cvsroot/CVSROOT744(/ccvsroo/CVSOOT设置为只读)

$chmod/cvsroot764组号(/cvsroot对开发组可读写)

修改文件以利于其他人使用,因为开发组人员是系统用户,所以在这里用系统的用户名和password是比较好的.先编辑.rhosts件如下:

tom.example.com.tom

修改服务器上的/etc/inetd.conf文件,加入如下的句子

2401streamtcpnowaitroot/usr/local/bin/cvscvs-f--allow-root=/usr/cvsrootpserver

这样一来,一个基本的cvs服务器就建好了.

我们这里只是提供了一个基本的应用.cvs真正的细节应用非常复杂.我们这里只进行一些抛砖引玉的介绍.与兴趣的朋友可以细读它的安装文档.

2.应用实例

(使用主机上的cvs系统,可以telnet到主机上,然后使用,和本机使用没什么差别,所以本文一直不提)

假设上例中的tom想使用cvs主机上的cvs系统以和大家协作开发.首先它营配置自己的一些环境变量.首先编辑/etc/services'加入:

cvspserver2401/tcp

然后在.profile文件中加入如下代码

CVSROOT=:etx:psever:tom@cvs.exam.org:/cvsroot

ExportCVSROOT

这样他便可以使用$cvslogin来登录了.下面我们便以tom的具体使用为例子讲一下cvs的应用.和其他linux命令一样.cvs也有大量的参数.我么将在下一节做一个列表.

Tom在/usr/test目录下有如下文件

Ecample.cexampl2.ctes1.ctest2.cutimel.ctty.c

如果想在软件库建立自己的目录

$cd/usr/test

~test$cvsimport–m“tomfirstcreation”tomdirtomtomwork

Ntomdit/example.c

Ntomdit/exampl2.c

Ntomdir/test1.c

Ntomdir/test2.c

Ntomdir/utmel.c

Ntomdit/tty.c

Noconflictscreatbythisimport
命令说明import提交命令–m后加描述.tom发行商tomwork是发行标号.如果提示CVSROOT不对,可以用--d加CVSROOT

注:一切cvs的命令可以用cvscommand–H来获得帮助.这时服务器端的/cvs目录下多了一个tomdir子目录.内容下:

example.c,vexampl2.c,vtest1.c,vtest2.c,vtty.c,vutimel.c,v
  • 相关推荐
  • 大家在看
  • 腾讯云服务器12.12限时秒杀-1核2G首年50元

    腾讯云服务器12.12多种机型限时抢购,1核2G服务器4.17元/月,2核4G服务器6.17元/月,专业技术7*24小时在线服务,腾讯云为企业和个人提供快捷,安全,稳定的云服务!

    广告
  • 阿里巴巴为Linux内核调度提出组平衡器(GB)概念

    随着越来越多的组织为了发展云计算等业务配置他们的服务器在应用程序之间共享CPU核心/资源,而不是专门分配CPU核心给单个应用程序/任务,中国公司阿里巴巴正在为Linux内核调度器提出一个新的"组平衡器"概念以提升系统资源利用表现。拟议中的的Linux组平衡器主要是在任务间共享资源时减少资源冲突。这个平衡器的重点是在各组CPU核心之间平衡各组任务。关于这个组平衡器(GB)的"征求意见"今天被发出,并被总结为:"我们需要的是一种

  • 距离Linux桌面元年越来越近了

    今年早些时候,TechRepublic 认为虽然 2021 年不是 Linux 桌面元年,但不可否认的是 Linux 在企业领域持续主导地位、而 Linux 在桌面上也缓慢(和微妙)增长...Sebastian 所做的实验似乎表明,虽然有些游戏使用 Proton(Valve 的 Windows 兼容层)确实运行良好,但也有同样多的游戏运行有问题...在他的视频中,Linus 提到阻碍“Linux 桌面元年”的主要问题是碎片化......

  • Canonical正在招聘Ubuntu Linux桌面游戏产品经理

    Canonical正在寻求围绕Linux游戏的兴趣群体,以及由于Valve的Steam Play允许越来越多的引人注目的Windows游戏在Linux上运行而带来的更大前景。因此Canonical现在正在招聘Ubuntu的桌面游戏产品经理的新职位。Canonical希望这位潜在的客户经理可以"使Ubuntu成为最适合游戏的Linux桌面。我们与业界的合作伙伴合作,确保内置最新的图形驱动和调整,以获得最佳的帧率和延迟,并与游戏行业的合作伙伴合作,确保反作弊功能等机制,以确保?

  • 三星与特斯拉合发布23个补丁 FSD开始适用主线Linux内核

    三星与特斯拉合作发布了一组23个补丁,用于使特斯拉的完全自动驾驶(FSD)SoC适用于主线Linux内核。这23个补丁使特斯拉的完全自动驾驶SoC能够从上游Linux内核启动,而目前使用的是下游内核构建。特斯拉不仅利用Coreboot支持开源的AMD GPU Linux驱动,甚至支持将其添加到主线Linux内核中。Tesla FSD SoC支持包括设备树的添加和对内核的各种修改,以提供这种基本支持,该技术主要是建立在现有的三星Exynos SoC驱动路径上。由于利用了

  • 微软重塑"DXGKRNL"驱动 欲将其纳入Linux内核中

    早在2020年,微软宣布DXGKRNL驱动为内核驱动组件,用于支持Windows Subsystem for Linux(WSL2)中的GPU加速用例。最初的DXGKRNL驱动很快就被上游内核开发者提出了各种问题,而现在,在过去的一年里,微软一直在重新制作这个内核驱动,并在周三发布了新版本。DXGKRNL是他们的"DirectX"内核驱动组件,用于Windows Subsystem for Linux(WSL2),支持Hyper-V环境下的图形加速和GPU计算。DXGKRNL也将用于他们即将推出的Android Window

  • 新的跨平台"SysJoker"后门同时影响macOS、Windows、Linux

    据报道,新的"SysJoker"后门可以攻击多个操作系统,包括macOS、Windows和Linux。来自Intezer的研究人员透露,他们发现了SysJoker,这个后门最初被发现是攻击Linux的。不久之后,同一后门的变种被发现,它们可以扩展出对Windows和macOS进行攻击。这一发现是不寻常的,因为发现可以同时攻击多个平台的恶意代码是很罕见的。通常情况下,恶意软件只为攻击一个平台的特定漏洞而生成,而不是以类似的方式同时为多个平台开发。根据研究人?

  • CleanCache在被夸大宣传了十年后将从Linux内核中被清除

    十年前,CleanCache补丁系列被并入Linux内核主线,但现在它将退役。今天,作为AndrewMorton补丁的一部分,合并到Linux-Next中的CleanCache被移除了。为什么?因为它已经没有用户了。自从2019年移除XenTranscendent Memory(TMEM)驱动代码后,CleanCache已经没有任何用户了,但代码仍然在内核中赋闲。CleanCache是由甲骨文的工程师开发的,在推出时,他们宣布它是"非常酷的东西,有巨大的潜力使运行的虚拟机大幅优化/性能/效率,是

  • 最“根正苗红”的手机Linux系统,最终还是倒下了

    因为Tizen虽然如今几乎已经没啥名气了,但无论从其技术特征、还是传承的“血统”来说,都完全可以称得上是有史以来最“根正苗红”的手机端Linux操作系统...使用Maemo的诺基亚N810,可能很多诺基亚手机的老用户也从未接触过...然后,还有Linux基金会在2007年开始推动,旨在探索Linux在手机端技术可能性的LinuxMobile系统......

  • Linux 5.17将支持AMD智能追踪缓冲区功能

    作为 AMD APU / SoC 芯片的新特性之一,“智能追踪缓冲区”(简称 STB)可分析系统在遇到故障时调用的最后一项功能。通过在后台保持透明运行,AMD STB 得以帮助隔离系统故障,以便用户在后续借助 DebugFS 接口来读取分析。最新消息是,其已做好了为 Linux 5.17 提供支持的准备。截图(来自:Kernel.org)虽然补丁代码描述中没有明确提及 AMD STB 支持的硬件类型,但其它代码有指代它至少支持 Cezanne SoC 。Radeon 图形方面,AMD ?

  • Linux 5.16-rc7正式发布 圣诞假期令其改进较小

    Linus Torvalds今天发布了Linux 5.16-rc7,作为最新的每周测试候选版本,而正式的Linux5.16稳定版应该在两周内发布。由于是圣诞假期期间发布的版本,Linux 5.16-rc7很小,没有大的惊喜。LinusTorvalds在5.16-rc7公告中指出:"没有人会感到惊讶,这个rc7的变化是相当小的。统计数字看起来也不出意外:大约四分之三是驱动程序(网络、输入、声音、TEE、HWMON、RDMA...)。有点不寻常的是,我们中间有人修复了一个PC键盘控制器(不是U

这篇文章对你有价值吗?

  • 热门标签

热文

  • 3 天
  • 7天