1,wget 'ftp://ftp.archlinux.org/other/pacman/pacman-4.1.2.tar.gz'下载软件包
2,tar xvf pacman-4.1.2.tar.gz,解压缩软件
3,cd pacman-4.1.2/,进入代码,执行./configure,提示没有libarchive
4,执行sudo apt-get libarchive-dev安装libarchive
5,再次执行./configure,通过
6,执行make,出错
-------------------------------------------------------------------------------
  CC       libalpm_la-be_sync.lo
be_sync.c: In function '_alpm_validate_filename':
be_sync.c:499: error: 'PATH_MAX' undeclared (first use in this function)
be_sync.c:499: error: (Each undeclared identifier is reported only once
be_sync.c:499: error: for each function it appears in.)
make[3]: *** [libalpm_la-be_sync.lo] 错误 1
make[2]: *** [all-recursive] 错误 1
make[1]: *** [all-recursive] 错误 1
make: *** [all] 错误 2
--------------------------------------------------------------------------------
7,gedit lib/libalpm/be_sync.c,代码文件,找到代码
-------------------------------------------------------------------------------
static int _alpm_validate_filename(alpm_db_t *db, const char *pkgname,
        const char *filename)
{
    size_t len = strlen(filename);

if(filename[0] == '.') {
        errno = EINVAL;
        _alpm_log(db->handle, ALPM_LOG_ERROR, _("%s database is inconsistent: filename "
                    "of package %s is illegal\n"), db->treename, pkgname);
        return -1;
    } else if(memchr(filename, '/', len) != NULL) {
        errno = EINVAL;
        _alpm_log(db->handle, ALPM_LOG_ERROR, _("%s database is inconsistent: filename "
                    "of package %s is illegal\n"), db->treename, pkgname);
        return -1;
    }
else if(len > PATH_MAX) {

errno = EINVAL;
        _alpm_log(db->handle, ALPM_LOG_ERROR, _("%s database is inconsistent: filename "
                    "of package %s is too long\n"), db->treename, pkgname);
        return -1;

}
    return 0;
}
-------------------------------------------------------------------------------
修改如下
-------------------------------------------------------------------------------
static int _alpm_validate_filename(alpm_db_t *db, const char *pkgname,
        const char *filename)
{
    size_t len = strlen(filename);

if(filename[0] == '.') {
        errno = EINVAL;
        _alpm_log(db->handle, ALPM_LOG_ERROR, _("%s database is inconsistent: filename "
                    "of package %s is illegal\n"), db->treename, pkgname);
        return -1;
    } else if(memchr(filename, '/', len) != NULL) {
        errno = EINVAL;
        _alpm_log(db->handle, ALPM_LOG_ERROR, _("%s database is inconsistent: filename "
                    "of package %s is illegal\n"), db->treename, pkgname);
        return -1;
    }
/*
else if(len > PATH_MAX) {

errno = EINVAL;
        _alpm_log(db->handle, ALPM_LOG_ERROR, _("%s database is inconsistent: filename "
                    "of package %s is too long\n"), db->treename, pkgname);
        return -1;

}
*/
    return 0;
}
-------------------------------------------------------------------------------
保存,退出
7,执行make&& make install,等待安装完成。

Ubuntu如何安装pacman相关推荐

  1. 在 Ubuntu 中安装 DOSBox 玩老游戏

    了解如何在 Ubuntu 中安装 DOSBox,并配置它来玩旧式 DOS 游戏. DOSBox 是一个自由开源的操作系统模拟器,可以在现代 Linux 系统中运行.它有几个组件可以模仿旧的硬件,以运行 ...

  2. Ubuntu下安装和配置Apache2

    在Ubuntu中安装apache 安装指令:sudo apt-get install apache2 安装结束后: 产生的启动和停止文件是:/etc/init.d/apache2 启动:sudo ap ...

  3. [网摘学习]在Ubuntu上安装和配置OpenStack Nova之二

    再收藏一份Openstack的文章,这两天的操作与此相同.但其中出现的问题还需要查找原因.待个人继续学习研究. 原文参考:http://www.linuxde.net/2011/11/1599.htm ...

  4. Ubuntu 下安装thttpd Web服务器

    不知道大家是不是真的需要用appache这么复杂的功能这么强大的web server,其实有很多时候使用webserver也只是一种远程共享访问的方式.这里,Ubuntu repository的提供了 ...

  5. Ubuntu下安装Apache+PHP+Mysql

    Ubuntu下安装 apache+php+mysql文本服务器! ------------------------------------------------------------------- ...

  6. Ubuntu下安装Cppcheck源码操作步骤

    Cppcheck是用在C.C++中对code进行静态检查的工具.它的源码在  https://github.com/danmar/cppcheck .它的License是GPL-3.0. Cppche ...

  7. ubuntu 在线安装mysql_Ubuntu下安装MySQL5.6

    我想我们不应该在安装软件上面耽误太多时间,但是很多时候,我们去被安装挡在了门外,尤其是初次在Linux下.作为一个程序猿,最近决定转战linux,MySQL是必须要有的,讲一下我的安装过程.在Ubun ...

  8. ubuntu下安装ftp服务器

    ubuntu下安装ftp服务器 Ftp服务器是使用以vsftp为例. 1. 安装     $sudo aptitude install vsftpd     $ps aux | grep 'ftp' ...

  9. 在 Ubuntu 上安装最新版本的 Erlang方法介绍

    Erlang 是一种用于构建大规模可扩展实时系统的函数式编程语言.Erlang 最初是由 爱立信 创建的专有软件,后来被开源. Erlang 在 Ubuntu 的 Universe 仓库 中可用.启用 ...

最新文章

  1. puppet cron 模块
  2. FluxSink实例及解析
  3. Kubernetes Ingress 日志分析与监控的最佳实践
  4. wxPython 笔记(3)基本结构
  5. LInux 安全测试 2
  6. stm32之RCC寄存器学习
  7. 【安卓开发 】Android初级开发(六)Activity生命周期
  8. logstash windows
  9. flutter 自定义键盘_掘金 AMA:听闲鱼客户端架构师邬吉风聊 Flutter 和移动端开发那些事...
  10. 【面试篇】Java多线程并发-Java中的CAS机制算法
  11. Spring Cloud Feign 1(声明式服务调用Feign 简介)
  12. Apache 模块 mod_cache应用
  13. Ceph添加、删除osd及故障硬盘更换
  14. 基于润和hi3516 dv300开发板,体验鸿蒙3.0 L1小型系统拍照Sample
  15. 黑马旅游网---day1
  16. 码教授|面试官:你还有什么要问我的吗?
  17. 专升本高等数学考试知识点汇总(二)
  18. Python zip zip_longest
  19. 如何用matlab画一个球
  20. gantt(甘特)图

热门文章

  1. Linux安装Chrome及依赖解决
  2. java下载网络文件+Illegal character in path at index 135错误解决方法
  3. FFmpeg和RTMP结合编译
  4. Rufus 格式化和创建可引导U盘的工具
  5. 嵌入式Linux的低功耗策略研究[转]
  6. 市场调研报告-全球与中国溶剂净化器市场现状及未来发展趋势
  7. MySQL高级查询习题
  8. 基于DDD的现代ASP.NET开发框架--ABP系列文章总目录
  9. 字节跳动(抖音)收购VR眼镜厂商Pico的划时代意义
  10. 《暮光之城●破晓(下)》