在本小指南中,我将解释(并教您)为什么最好从源代码编译程序(例如Firefox,Vlc等),而不是从软件中心,Yumex,Pacman等处下载程序。 )并安装。
首先,我们遵循以下理论:
什么是“编译”?
编译是通过使用处理器将用于生成代码的语言转换为二进制和汇编程序,将源代码(以某种编程语言编写的代码,例如C,C ++等)转换为可执行程序以进行操作。 。 通常也称为包装。
为什么“编译”更好?
首先,您必须了解以下内容以了解原因。 用一种“粗略”的方式(简单,不太专业等)表示,处理器的每个种族(奔腾,Core,Atom等)及其种类(Intel,AMD,ARM等)都有说明(用汇编语言编写的软件)处理其模型(Core i7,Core i5,Atom x2,Phantom x8,Arm等)的代码,并具有所有此类通用说明。
当您通过软件中心/ apt-get / Yumex / Yum / Pacman /等从存储库下载时,自动安装的程序就是这样的 预编译 其在所有可能的处理器(Intel和Amd)中的运行情况。 由于它是预编译程序,因此会丢失该特定处理器模型的典型指令(例如,如果像Firefox或Chrome这样的程序具有超过7或8万行代码,则必须为每个程序放置所有特定指令。在市场上的处理器中,代码量太大,以致该程序将不再高效。)只剩下其创建者品牌(英特尔,Amd,Arm)的通用代码。
当您自己下载,解压缩并编译程序的源代码时,它会按照以下说明进行编译: TU 处理器,(这并不意味着它不能在另一台机器上运行,而仅仅是针对您的处理器进行了专门的优化),从而释放并释放处理器的所有功能,这要归功于其特定的说明。
在更多的技术细节中,这些特定的说明与您的主板芯片组紧密相关,当我们想要升级处理器和主板时,对于那些拥有英特尔的人来说,这是非常头痛的事情。
您会惊讶于您的力量 AMD原子X2 或 英特尔酷睿内部, 酷睿2, i3,等等从您的旧PC。 现在您了解为什么在Linux世界中有很多关于编译著名的内核(每个操作系统的核心)的讨论吗? 想象一下,如果您要编译整个系统(图形环境(Gnome,Kde等),内核,常用程序(Firefox,Vlc,Chrome,Wine等),尤其是针对您的PC),那么您将拥有所有的速度和优化级别。
这种获得特别为您的机器优化的代码的编译原理是诸如Gentoo和衍生产品(我现在不打算讨论的,我使用Fedora minimal以及Gnome 3,内核和其他程序的编译)之类的发行版所使用的代码。 ,您的更新和程序始终会被编译。
编译的缺点:
我已经解释了所有优点,但是就像宇宙中的所有事物一样,它也有一个缺点。
在编译情况下,它们是:
为此所需的时间(使用i7 4790K的Firefox(没有超频,因为我对电压非常不满意)需要3分钟,带有Gnome-Control-Center的Gnome Shell(仅此而已)仅花费了2分钟,两者均在在Fedora中是相同的。但是在一台处理器性能不佳的机器上,这段时间可能不成比例地长。
处理器最大程度地利用其所有内核的100%的功率,因此消耗和热量激增(如果您超频或特别是笔记本电脑,请考虑到这一点),因此方便您准备伴侣或咖啡为之。
可能您缺少使用程序的库(工具),因此在编译时不会出错。 总的来说,所有发行版都有软件包或软件包集来避免这种情况(它们包装有各种库和其他东西,这些东西允许内核在处理过程中按需与处理器通信)。
我该如何编译?
对于Debian(Ubuntu,Mint,Elementary等,它们都是此的派生,因此请遵循此
在这里,我谈论的是编译供正常使用的程序,而不是内核。
aptitude install build-essential dh-make devscripts fakeroot debhelper debian-policy ccache dh-autoreconf autotools-dev build-dep ardor
我放了debian-policy,但是如果您的发行版不是Debian,并且给您一个错误,表明没有这样的软件包,请忽略它。 我需要澄清的是,我已经很长时间没有使用这些系统了,因此,如果存储库中不再有软件包,就不会出现问题。
对于Fedora:
sudo yum -y安装内核头文件
内核开发
sudo yum groupinstall“开发工具”
sudo yum groupinstall“开发库”
在这里,我不得不为那些使用Arch(我不太了解发行版)和OpenSuse的人道歉,因为我不知道这些发行版或各自的软件包来执行正确的编译(而且我没有证实网络上的内容,因此对于这两个我不知道他们是否有效)。
现在,您已经具备了所有必要的要求,您只需要下载要编译的程序的源代码,根据您使用终端将其解压缩的扩展名即可(不用担心,我会留给您命令)并当您转到文件夹(始终与终端一起使用)时,请执行以下操作:
如果可以配置自己以选择组件和其他组件,请执行以下操作:
./configure
然后输入:
make
最后在您的linux上安装程序:
make install
所有这些都始终以root身份存在(Fedora中的su,Ubuntu及其衍生版本(Mint,Elementary Os等)中的sudo su
使用终端解压缩的命令(文件被解压缩到文件所在的文件夹中):
.Tar文件(tar)-------------------------------Pack | tar cvf file.tar / file / *解压| tar xvf file.tar查看内容| tar tvf file.tar
-------------.tar.gz-.tar.z-.tgz(tar with gzip )-------------------------------- tar czvf file.tar.gz / file /解压缩和解压缩| tar xzvf file.tar.gz查看内容(未提取)| tar tzvf file.tar.gz
---------------------------.gz(gzip)------------ -----------------------压缩| gzip -q文件(该文件压缩并重命名为“ file.gz”) gzip -d file.gz(文件解压缩并将其保留为“文件”。注:gzip仅压缩文件,不压缩目录
---------------------------.bz2(bzip2)------------ -----------------------压缩| bzip2文件| bunzip2文件(该文件会压缩并重命名为“ file.bz2”)。 bzip2 -d file.bz2 | bunzip2 file.bz2(文件解压缩并将其保留为“文件”)注意:bzip2仅压缩文件,而不压缩目录
---------------------------.tar.bz2(tar with bzip2)------ ----------------------------压缩| tar -c文件| bzip2> file.tar.bz2解压缩| bzip2 -dc file.tar.bz2 | tar -xv | tar jvxf file.tar.bz2(tar的最新版本) bzip2 -dc file.tar.bz2 | tar-电视
---------------------------.zip(zip)------------- ----------------------压缩| zip file.zip/mayo/archives解压缩| 解压缩file.zip查看内容| 解压-v file.zip
------------------------------.rar(rar)----------- ------------------------压缩| rar -a file.rar / may /压缩文件rar -x file.rar查看内容| rar -v file.rar | rar -l file.rar
就这样。 来自阿根廷布宜诺斯艾利斯的问候。 节日快乐,新年快乐! :)。