在ubuntu上配置Catalyst.

本文介绍了在使用Perl过程中遇到的链接错误及其解决方案,包括如何处理undefined symbol:PL_dowarn问题,以及通过设置LD_LIBRARY_PRELOAD环境变量来解决动态库缺失的情况。
1.  relocation error:
  undefined symbol: PL_dowarn
这类似问题主要是因为静态链接时加载的包不对引起的。比如安装有5.8.8和5.8.7的perl。编译的时候加载的5.8.7.运行的时候使用5.8.8就会引起这个问题。

2. libexec/libperl.so: open failed: No such file or directory
it probably means that Perl was compiled with a shared library. mod_perl does detect this and links the Apache executable to the Perl shared library (libperl.so).
没有找到Perl的动态库,
使用:
LD_LIBRARY_PRELOAD=/perl安装路径/libperl.so
就行了。

3. 删除所有的Perl.
rm -rf /usr/local/lib/perl*
rm -rf /usr/lib/perl*
find /usr/bin/ -name "*perl" -exec rm {} /;
/usr/local/share/perl
/usr/share/perl

在安编译新的Perl的时候,最好删除原来的Perl,不然很容易出现undefined symbol: PL_dowarn错误。
expat-2.0.0.tar.gz

4. expat-2.0.0.tar.gz 一个C写的 xml解析包。安装XML::XAL的时候需要用到这个包。

5. 学到了一个新的命令
   ldd 可以看查一个程序所有引用的符号和动态包。
例如:
[deon@b75 deon]$ ldd -r /usr/local/apache/bin/httpd
        libm.so.6 => /lib/libm.so.6 (0x40028000)
        libcrypt.so.1 => /lib/libcrypt.so.1 (0x40049000)
        libgdbm.so.2 => /usr/lib/libgdbm.so.2 (0x40075000)
        libnsl.so.1 => /lib/libnsl.so.1 (0x4007c000)
        libdl.so.2 => /lib/libdl.so.2 (0x4008f000)
        libutil.so.1 => /lib/libutil.so.1 (0x40093000)
        libc.so.6 => /lib/libc.so.6 (0x40096000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)


昨天晚上安装Catalyst时用到的包。还有很多没有记下来。
Readonly-1.03.tar.gz
Set::Object
Catalyst::Plugin::Cache::FileCache
Catalyst::Plugin::Authentication::Credential::Password
Catalyst::Plugin::I18N
Catalyst::Plugin::Unicode
Catalyst::Engine::Apache::MP13
Catalyst::Plugin::DefaultEnd
Catalyst::Plugin::Session::CGISession
Class::Data::Accessor
DBIx::Class
DBI
Catalyst::Model::DBIC::Schema
Catalyst::Plugin::ConfigLoader::XML
Catalyst::View::TT


### 解决Ubuntu系统卡住的问题 当遇到Ubuntu系统卡住的情况时,可能的原因有很多,包括硬件兼容性问题、驱动程序冲突以及内核配置不当等。以下是针对常见原因的一些解决方案。 #### 1. 禁用帧缓冲区以解决显卡驱动问题 如果使用的是ATI显卡并安装Catalyst专有驱动,则可能会因为启用帧缓冲而导致系统挂起或冻结。可以通过禁用帧缓冲来解决问题。具体方法是在GRUB引导加载器的内核选项中添加`vga=0`参数[^1]: ```bash sudo nano /boot/grub/menu.lst ``` 找到对应的内核启动项,在其后面追加`vga=0`,例如: ```plaintext kernel /vmlinuz-linux root=/dev/sda3 resume=/dev/sda2 ro quiet vga=0 ``` 保存文件后更新GRUB配置: ```bash sudo update-grub ``` 重启计算机验证效果。 #### 2. 更新图形驱动和内核版本 过时的图形驱动或不匹配的内核版本可能导致系统不稳定。建议通过官方仓库或其他可信源获取最新版驱动。对于AMD/ATI设备,可以尝试安装开源驱动`amdgpu-pro`或者重新编译最新的闭源驱动。 #### 3. 调整虚拟环境设置防止资源耗尽 有时运行大型应用程序(如OpenCV开发环境中涉及大量计算的任务)会消耗过多内存从而引发死机现象。确保合理分配给Python解释器及其依赖库所需的RAM空间非常重要[^2]。另外还可以考虑创建独立的工作目录以便管理不同项目之间的相互影响[^3]: ```bash mkdir ~/my_project && cd $_ virtualenv env --python=$(which python2.7) source ./env/bin/activate pip install numpy scipy matplotlib opencv-python deactivate ``` #### 4. 用户ID范围调整优化权限控制 某些情况下由于多用户操作系统的特殊设计需求,有必要为特定账户指定连续区间内的UID/GID集合以防潜在的安全隐患引起崩溃事故[^4]: ```bash sudo usermod -v 100000-200000 -w 100000-200000 username ``` 以上措施能够有效缓解大多数由软件层面引起的Ubuntu系统停滞状况;然而如果是物理损坏或是BIOS固件缺陷所致则需另行排查修理。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值