我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何理解Ubuntu编译源码包

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何理解Ubuntu编译源码包

如何理解Ubuntu编译源码包,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

学习编译时,你可能会遇到Ubuntu编译问题,这里将介绍Ubuntu编译问题的解决方法,在这里拿出来和大家分享一下。可见Ubuntu隶属于linux阵营。顺便问一句楼主既然没有文档何必一定要学ubuntu,还是学有文档的比较方便。Linux系统中,软件通常以源代码或者预Ubuntu编译包的形式提供。 

软件源代码需要您亲自Ubuntu编译为二进制的机器代码才能够使用,安装比较耗时,不过您可以自行调节Ubuntu编译选项,决定您需要的功能或组件,或者针对您的硬件平台作出优化。 

预Ubuntu编译的软件包,通常是由软件的发布者进行Ubuntu编译,您只要将软件拷贝到系统中就可以了。考虑到预Ubuntu编译软件包的适用性,预Ubuntu编译软件包通常不会针对某种硬件平台优化。它所包含的功能和组件也是通用的组合。 
Ubuntu系统中,软件通常以“deb”格式的包文件发布,它是一种预Ubuntu编译软件包。deb包中除了包含已Ubuntu编译的软件,通常还包括软件的拷贝路径、对其它软件包的依赖关系纪录、一个比较通用的配置文件以及软件的描述、版本、作者、类别、占用空间等信息。 

deb软件包命令遵行如下约定: 
soft_ver-rev_arch.deb 
soft为软件包名称,ver为软件版本号,rev为Ubuntu修订版本号,arch为目标架构名称 
例如:azureus_2.4.0.2-0ubuntu2_all.deb 您需要使用“dpkg”命令来管理deb软件包: 
dpkg -i | --install xxx.deb 安装deb软件包 
dpkg -r | --remove xxx.deb 删除软件包 
dpkg -r -P | --purge xxx.deb 连同配置文件一起删除 
dpkg -I | -info xxx.deb 查看软件包信息 
dpkg -L xxx.deb 查看文件拷贝详情 
dpkg -l 查看系统中已安装软件包信息 
dpkg-reconfigure xxx 重新配置软件包 
有些时候,您使用“dpkg”安装一个软件包,系统会提示您该软件包依赖其它软件包。这时,您先安装其它软件包,直到满足依赖关系为止。或者同时安装多个软件包 
dpkg -i aaa.deb bbb.deb ccc.deb 

APT 

如果一个软件依赖关系过于复杂,使用“dpkg”来安装它,并不是一个明智的选择,这个时候您就需要用到APT软件包管理系统。APT可以自动的检查依赖关系,通过您预设的方式来获得相关软件包,并自动安装配置它。事实上,在多数情况下,我们推荐您使用APT软件包管理系统。 
APT系统需要一个软件信息数据库和至少一个存放着大量deb包的软件仓库,我们称之为“源”。“源”可以是网络服务器,安装CD或者本地软件仓库。您需要修改“/etc/apt/sources.list”文件,使APT系统能够连接到“源”。 

您可以在以下页面中获得网络安装源的列表,并且根据您的网络环境,选择速度较快的源。 
http://wiki.ubuntu.org.cn/%E5%BF%AB%E9%80%9F%E8%AE%BE%E7%BD%AE%E6%8C%87%E5%8D%97/DapperDrake 
APT系统主要包括“apt-get”和“apt-cache”等命令。它们通常都是复合命令,包含若干个子命令。 
apt-get install xxx 安装xxx 
-d 仅下载 
-f 强制安装 
apt-get remove xxx 卸载xxx 
apt-get update 更新软件信息数据库 
apt-get upgrade 进行系统升级 
apt-cache search 搜索软件包 
Tips:建议您经常使用“apt-get update”命令来更新您的软件信息数据库 

源码包 

对于绝大多数软件,我们建议您使用APT系统来安装它。在少数情况下,例如某软件没有以deb包的格式发布,或者您需要定制适合自己的软件,您可以通过Ubuntu编译源代码的方式安装它。 
首先您需要下载软件的源码包,并且将它解包为一些源代码文件。并了便于管理,我们建议您将下载的源码包移动到“/usr/local/class="lazy" data-src/”目录下,并在这里解包。 

sudo mv xxx.tar.gz /usr/local/class="lazy" data-src 移动源码包 
cd /usr/local/class="lazy" data-src 进入“/usr/local/class="lazy" data-src/”目录 
sudo tar -xzvf xxx.tar.gz 解包源码 
cd xxx_ver/ 进行解包后的源码目录 
源码目录中通常有一个“configure”脚本,用来配置即将开始的Ubuntu编译过程。您可以执行它 
sudo ./configure [--prefix=/usr/loca/xxx ......] 
它会自动检测软件的Ubuntu编译环境和依赖关系,并且生成“Makefile”文件。

您可以使用带参数的命令“./configure --help”,或者阅读“install”文件,查看该脚本允许的参数。例如使用“--prefix=/usr/local/xxx”参数,将软件的安装目录设定为“/usr/local/xxx/”。(如果您一定要将软件安装在一个目录下,我们建议您安装在这里) 
现在执行“make”命令,系统会根据“Makefile”文件中的设定,通过“make”工具调用Ubuntu编译器和所需资源文件,将源代码文件Ubuntu编译成目标文件。 

sudo make 

执行“make install”命令,“make”工具会自动将连接目标文件,将最终生成的文件拷贝到“Makefile”文件设定的路径中,并且完成更改文件的属性,删除残留文件等活动。 

sudo make install 

现在,您的Ubuntu编译安装已经完成,为了更方便的使用它,需要给程序的可执行文件作一个符号链接。 
sudo ln -sf /usr/local/xxx/exe /usr/local/bin/exe 
Tips:为了顺利的进行Ubuntu编译,您至少需要安装“build-essential”软件包。 
使用命令“sudo apt-get install build-essential”安装它。

关于如何理解Ubuntu编译源码包问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网行业资讯频道了解更多相关知识。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何理解Ubuntu编译源码包

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何理解Ubuntu编译源码包

如何理解Ubuntu编译源码包,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。学习编译时,你可能会遇到Ubuntu编译问题,这里将介绍Ubuntu编译问题的解决方法,在这里拿
2023-06-17

Java进阶:如何反编译jar包获取源码

0.引言 某些没有提供源码的历史遗留项目,或者第三方jar包,我们常常需要进行二开,但是又没有源码,这时就需要进行反编译获取到项目源码。 当然也不是所有的jar都能反编译的,某些做了防编译处理的则不能,但对于我们历史遗留的项目进行反编译则是
2023-08-19

如何使用源码编译apache2.4

如何使用源码编译apache2.4,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。[root@Jaking12 ~]# yum install -y gcc pcre pcr
2023-06-05

Android 源码如何编译调试

android提供的工具链和开发工具比较完善,因此它的开发环境的搭建比较简单,相信许多朋友都已经搭建好环境,并编写了HelloActivity入门程序了。这里先看几个问题:1、android的文件系统结构是怎样的,我们安装的程序放在那里?
2022-06-06

如何修改并编译golang源码

这篇文章主要讲解了“如何修改并编译golang源码”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何修改并编译golang源码”吧!最近为了做Hyperledger Fabric国密改造,涉
2023-06-20

如何编译dotnet和aspnetcore源代码

这篇文章主要介绍如何编译dotnet和aspnetcore源代码,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!0.环境准备详见官方文档:《使用源码编译 ASP.NET Core》中的“Step 2: Install
2023-06-29

如何顺利完成Kubernetes源码编译

本篇文章给大家分享的是有关如何顺利完成Kubernetes源码编译,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。为什么要编译源码 ?Kubernetes是一个非常棒的容器集群管
2023-06-04

Ubuntu如何轻松编译openJDK详解

前言 花了三天在windows上搞openJDK,对bash本来就不熟,加上各种莫名依赖和脚本里的bug,身心俱疲。最后make all的时候产生一个莫名其妙的错误说什么有warning且-Werror置为了true,死活没google到-
2022-06-04

如何理解C++编译器编译功能

如何理解C++编译器编译功能,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。下面深度讲解C++中的大规模C++编译器,C++编译器具有很强的复杂性,并且源程序的行数也是非常多
2023-06-17

​Javac编译器如何读取Java源代码

这篇文章给大家分享的是有关Javac编译器如何读取Java源代码的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Javac编译器读取Java源代码,并将其编译成字节代码,调用Javac的命令行如下:  C:>jav
2023-06-03

基于CentOS6.4环境如何编译Spark-2.1.0源码

小编给大家分享一下基于CentOS6.4环境如何编译Spark-2.1.0源码,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1 写在前面的话 有些小伙伴可能会问:Spark官网不是已经提供了Spark针对不同版本的安装包了
2023-06-03

如何进行Mysql5.6或Centos6.5源码编译安装

这篇文章给大家介绍如何进行Mysql5.6或Centos6.5源码编译安装,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。## 说明 不同服务器需要改变 server_id ,同一台机器上需要改变 port1. 关闭防火
2023-06-06

ubuntu Json源码如何解压安装

这篇文章主要介绍ubuntu Json源码如何解压安装,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1. 下载 ubuntu Json源码, 我下的是 php-json-ext-1.2.0.tar.bz22. ubu
2023-06-16

如何对Python编译PyInstaller打包生成的exe文件进行反编译生成pyc、py源代码文件

很多开发者没有发布源程序代码,而是将代码封装为exe可执行文件,这样不仅更有利于程序传播,下面这篇文章主要介绍了如何对Python编译PyInstaller打包生成的exe文件进行反编译生成pyc、py源代码文件的相关资料,需要的朋友可以参考下
2023-01-18

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录