第六章 使用源码包
6.1 下载源码包
在自由软件包的世界中学习源码或是修正错误源码是一件很平常的事情.要这样做,我们就要下载程序的源码.APT系统提供了一个很简单的方法可以获得发行版本中的程序源码,包括要创建程序.deb包的所有文件.
Debian源码另一个常见的用法就是从不稳定发行版中修正一个新版本的程序以适应稳定版.编译一个相对稳定版本的软件包将会创建一些与当前版本中可获得的软件包相匹配依赖关系的deb包.
要完成这样的工作,在我们的/etc/apt/sources.list文件中的deb-src实体要指向不稳定版本.他也应被允许(但是并不推荐这样).
要下载一个源码包,我们可以用下面的命令:
$ apt-get source packagename
这会下载三个文件:a.orig.tar.gz,a.dsc,a.diff.gz.如果是下载专门的Debian软件包,在上面的三个文件中最后一个通常并不会下载,而第一个文件中也通常并没有orig的名字.
.dsc文件中由dpkg-source用来将源码包解压到packagename-version目录下的.在每一个下载的软件包中有一个debian目录,其中含用创建.deb包所需的文件.
如果我们希望在软件包下载后自动创建这个软件包,我们可以在命令行中加入-b选项,如下面的命令:
$ apt-get -b source packagename
如果我们并没有在下载后立即创建.deb包,我们可以在以后运行下面的命令来创建:
$ dpkg-buildpackage -rfakeroot -uc -b
这个命令要在为下载源码所创建的目录中运行.
要安装上面的命令所创建的安装包,我们要直接使用包管理器.如下面的命令:
# dpkg -i file.deb
在apt-get的source方法与他的其他的方法之间也存在一些区别.source方法可以为普通的用户所使用而并不需要专门的root密码.下载的文件所存放的目录就是我们调用apt-get source package命令所在的目录.
6.2 编译源码包所需要的包
在通常的情况下,为了编译一个源码包需要专门的头文件和共享库.所有的源码包在他们的控制文件中都存在一个名"Build-Depends"的区域来表明为了从源码编译这个包所需要的额外的包.
APT有一个很简单的方法来下载这些包.我们只需要运行apt-get build-dep package,在这里package是我们要创建的包名.例如:
# apt-get build-dep gmc
这样将会安装的软件包就是我们要正确的编译gmc包所需要的软件包.在这里有一点要注意的就是这个命令并不会查找我们要编译程序的源码,所以我们需要运行单独的apt-get source来得到我们所需的源码.
如果我们所希望的只是检查要创建指定的包所需要的包,有许多的apt-cache show可以满足我们这样的要求.在这个命令的显示信息中,Build-Depends部分就会列出所需要的软件包.如:
# apt-cache showsrc package
第七章 如何处理错误
7.1 常规错误
错误总是会发生的,其中的许多是由于用户没有注意而造成的.下面我们会列出一些最常出现的一些错误以及一些解决办法.
如果我们试着运行apt-get install package时会出现类似于下面的错误信息:
Reading Package Lists...Done
Building Dependency Tree...Done
W: Couldn't stat source package list 'http://people.debian.org unstable/ Package'
W: you may want to run apt-get update to correct these missing files
E: Couldn't find package penguineyes
这是因为在你上次更改/etc/apt/source.list文件后我们忘记了运行apt-get update命令.
如果错误如下:
E: Could not open lock file /var/lib/dpkg/lock - open (13 Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/),are you root?
如果我们在试着运行任何的apt-get方法而不是source方法,我们不具有root权限,也就是说,我们正在以普通用户在运行这些命令.
如果我们在同一时间运行了两次apt-get命令或是我们在试着运行apt-get的同时dpkg进程处于激活,也会出现类似的信息.可以与其他同时运行的唯一的方法就是source方法.
如果一个安装进程在中间被打断而我们发现再也不可能安装或是移除这个安装包,我们可以试着运行下面的两个命令:
# apt-get -f install
# dpkg --configure -a
然后再试一下.上面的两个命令比较起来似乎第二个更必须一些.这对于使用'unstable'的用户来说是很重要的一课.
如果我们在运行apt-get update时出现"E:Dynamic MMap ran out of room",我们可以在我们的/etc/apt/apt.conf中加入下面的一句:
APT::Cache-Limit 10000000;
(End)
分享到:
相关推荐
### APT学习资料知识点解析 #### 一、APT软件简介 **APT**(Alternative Transients Program)是一款...通过对APT的学习和使用,用户可以深入了解电力系统的动态特性,为电力系统的规划、设计和维护提供有力的支持。
- 用户基础:由于面向的是对Linux有一定了解的用户,对于不熟悉Linux的Windows用户,使用apt-cyg可能需要一定的学习成本。 总结,apt-cyg为Windows用户提供了一种接近Linux的包管理体验,它在简化软件管理和维护...
本文主要探讨了基于机器学习的APT检测过程中遇到的四个关键难点及其相应的解决方案。 首先,难点一涉及到如何从原始病毒文件中提取可分析的数据。解决这个问题的关键步骤是预处理。通过将病毒文件放入Cuckoo沙盒...
在基于机器学习的APT(Advanced Persistent Threat)检测中,面临多个挑战,这些挑战主要涉及到数据预处理、模型训练与持久化、模型匹配、软件开发流程以及模型参数优化。以下是对这些难点的详细解析: **难点一:从...
6. **人工智能**:涵盖机器学习、深度学习等技术的应用。 7. **工业互联网**:实现制造业智能化升级的基础平台。 #### 二、“新基建”带来的影响 “新基建”不仅能够推动科技创新和产业升级,还能通过“补短板”...
7. **软件安装与管理**:在Linux中,软件通常通过包管理器(如apt或yum)进行安装,掌握这些工具的使用方法。 8. **网络配置与通信**:学会配置IP地址、DNS解析,使用ping、telnet、ssh等工具进行网络测试和远程...
#### 四、防护APT攻击研究 针对电力系统的APT攻击,研究人员正在探索以下方向: - **智能分析算法**:开发更高效的算法,提高对APT攻击模式的识别率。 - **自动化防御流程**:构建自动化的防御系统,降低人工干预...
#### 四、区块链技术在APT响应中的挑战 尽管区块链技术在APT响应中展现出了巨大的潜力,但仍面临一些挑战: - **技术成熟度:** 目前区块链技术仍处于发展阶段,其在安全领域的实际应用还需进一步探索和完善。 - *...
强化学习由四个关键元素组成:智能体(Agent)、环境(Environment)、动作(Actions)和奖励(Rewards)。智能体在环境中执行动作,并根据环境的反馈(即奖励)调整其行为策略。目标是学习一个策略π,使得长期累积奖励最大...
### LabVIEW与APT指南知识点详解 #### 一、引言:LabVIEW与APT简介 - **LabVIEW**:LabVIEW是一种基于图形化编程语言的软件开发环境...通过这些知识点的学习,可以帮助读者更好地理解和掌握LabVIEW及APT的使用方法。
APT语言编程技术系列讲座(数控)涵盖了数控自动编程的过程、APT语言的基本组成、几何定义语句、刀具运动语句、工艺数据语句等方面的知识点,为数控编程技术的学习者提供了系统性的指导和参考。
1. 软件安装:使用`apt-get`命令安装各类软件,如Web服务器Apache、数据库MySQL等。 2. GPIO扩展板:如Cobbler Plus,方便快速连接GPIO引脚,简化硬件实验。 3.树莓派摄像头模块:可添加摄像头模块,实现拍照、录像...
总之,这份资料涵盖了ASP.NET和ADO.NET的关键概念、使用方法和实战代码,是学习.NET Web开发不可或缺的学习资源。通过深入研究,学生将能够掌握Web应用程序的开发流程,以及如何利用ADO.NET进行高效的数据操作,为...
《鸟哥的 Linux 私房菜:基础学习篇 第四版》是一本广受欢迎的Linux入门教程,适合初学者及对Linux系统有一定了解的人群。这本书深入浅出地讲解了Linux的基本概念、操作命令和实战技巧,旨在帮助读者快速熟悉并掌握...
通过命令行,你可以使用`sudo apt update`来更新软件源,`sudo apt upgrade`升级所有已安装软件,`sudo apt install <软件名>`安装软件,`sudo apt remove <软件名>`卸载软件。 六、Ubuntu Linux网络配置 Ubuntu...
- 学习如何使用命令行处理文件,如复制、移动、删除文件等。 - **用户和权限操作**: - 了解用户账户管理,包括创建新用户、修改用户密码等。 - 学习文件权限的设置方法,掌握chmod、chown命令的使用。 - **...
四、总结 Ubuntu的学习不仅仅是记住这些命令,更重要的是理解Linux的哲学和工作方式。通过实践和探索,你将能更自如地驾驭这个强大的操作系统,无论是日常使用还是专业开发,Ubuntu都能提供稳定且高效的平台。不断...
用户将学习如何自定义桌面壁纸、设置快捷方式、管理窗口以及使用内置应用如文件管理器Nautilus。此外,还将介绍Unity桌面环境,这是Ubuntu早期版本采用的界面,具有独特的Dash搜索功能和Lenses应用。 三、软件管理...
通过本教程的学习,您可以顺利地在 Windows 和 Linux 系统上安装、配置并使用 MySQL 数据库。从下载安装包、完成安装过程到进行基本的安全配置和日常管理,您现在应该对 MySQL 的基本操作有了较为全面的了解。对于更...