svnserve: error while loading shared libraries: libaprutil-1.so.0: cannot open shared object file:

本文详细介绍如何在Linux环境下安装及配置SVN版本控制系统,并设置自定义端口以提高安全性。包括安装步骤、异常处理、配置共享库、修改配置文件等关键环节。

  1、安装svn

yum -y install subversion

  2、启动svn

svnserve -d -r /www/svndata

  启动svn时以下异常

svnserve: error while loading shared libraries: libaprutil-1.so.0: cannot open shared object file: No such file or directory

  找不到libaprutil-1.so.0,于是

find / -name libaprutil-1.so.0

  结果为

/www/wdlinux/httpd-2.2.22/lib/libaprutil-1.so.0

  3、将apr依赖包添加到共享库

  查看共享库配置文件

more /etc/ld.so.conf
include ld.so.conf.d/*.conf

  创建apr共享库配置文件

cd /etc/ld.so.conf.d/
vi httpd-apr.conf
/www/wdlinux/httpd-2.2.22/lib/

  更新共享库配置

ldconfig -v

  4、检测是否安装成功

svn --version

  结果为

复制代码
svn, version 1.6.11 (r934486)
   compiled Mar  5 2014, 14:28:03

Copyright (C) 2000-2009 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).

The following repository access (RA) modules are available:

* ra_neon : Module for accessing a repository via WebDAV protocol using Neon.
  - handles 'http' scheme
  - handles 'https' scheme
* ra_svn : Module for accessing a repository using the svn network protocol.
  - with Cyrus SASL authentication
  - handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
  - handles 'file' scheme
复制代码

  此时说明已将安装成功

  5、启动svn

svnadmin create /www/svndata/testproject

  修改配置文件svnserve.conf

cd /www/svndata/testproject/conf
vi svnserve.conf
#添加如下配置项 anon
-access=none auth-access=write password-db=passwd

  修改密码文件passwd,添加相应的用户和密码

vi passwd
[users]
harry = harryssecret
sally = sallyssecret

  重启svn,为了增加svn的安全性,这里将svnm的默认端口3690改为6534。

#关闭svn服务
killall svnserve

#新的端口启动
svnserve -d -r /www/svndata --listen-port 6534

  当然,如果出于安全性的考虑,你还可以添加https的支持。这里就不再详述。

  6、使用svn

  svn客户端中使用 “svn://你的IP:端口/项目名称/”进行项目的下载和管理等,当然你也可以通过命令行进行管理,这就见仁见智了。

svn://你的IP:端口/项目名称/
在使用 `systemd` 管理服务时,如果出现 `Failed at step USER spawning /usr/bin/svnserve: No such process` 错误信息,这通常表明服务单元配置文件中指定的用户不存在或无法被解析,导致 `systemd` 无法以该用户身份启动 `/usr/bin/svnserve` 进程。 此类错误可能由以下几个原因引起: - **用户不存在**:服务配置文件中通过 `User=` 指令指定的用户账户未在系统中创建,或拼写错误[^2]。 - **权限问题**:即使用户存在,也可能因为权限设置不当,例如家目录不存在或权限过于宽松,导致 `systemd` 无法正确切换到该用户。 - **PAM 或 NSS 模块问题**:系统用于解析用户信息的 PAM(Pluggable Authentication Modules)或 NSS(Name Service Switch)模块出现问题,可能导致用户信息无法正确获取[^3]。 ### 解决方案 1. **验证用户是否存在**: 使用 `getent passwd <username>` 命令检查指定用户是否存在于系统中。如果命令没有输出,则需要创建该用户或者更正服务文件中的用户名。 2. **检查服务文件中的 `User=` 设置**: 确认服务单元文件中 `User=` 指令指定的用户名是否正确无误。可以通过编辑服务文件(如 `/etc/systemd/system/svnserve.service`)来修改此设置。 3. **确保用户家目录可用**: 如果服务依赖于用户的家目录(例如,SVN 仓库位于用户的家目录下),则需确保该目录存在且具有适当的权限设置。 4. **检查 PAM 和 NSS 配置**: 如果怀疑是 PAM 或 NSS 的问题,可以尝试重启系统或重新加载这些模块的配置。对于 NSS,检查 `/etc/nsswitch.conf` 文件中的相关条目是否正确配置。 5. **查看日志以获取更多信息**: 使用 `journalctl -u svnserve.service` 查看详细的日志信息,这有助于诊断具体的问题所在。 ### 示例:修改服务文件中的用户设置 假设需要将 `svnserve` 服务的运行用户从 `svnuser` 更改为 `newsvnuser`,可以按照以下步骤操作: 1. 停止服务(如果正在运行): ```bash sudo systemctl stop svnserve.service ``` 2. 编辑服务文件: ```bash sudo nano /etc/systemd/system/svnserve.service ``` 3. 修改 `User=` 行为新的用户名: ``` User=newsvnuser ``` 4. 保存文件并退出编辑器。 5. 重新加载 `systemd` 配置: ```bash sudo systemctl daemon-reexec sudo systemctl daemon-reload ``` 6. 重启服务: ```bash sudo systemctl start svnserve.service ``` 通过以上步骤,应该能够解决由于用户不存在或配置不当引起的 `Failed at step USER spawning` 错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值