特殊:Badtitle/NS100:CompilingEasyHowTo/zh:修订间差异
Allen05ren(留言 | 贡献) |
|||
第15行: | 第15行: | ||
大多數你通常需要的軟體來自釋放的tarball。它們只是一些壓縮文檔,通常的格式為.tar.gz或.tar.bz2————好比Windows上的.zip 文件和MacOSX上的.sit(如果這樣的類比對你有幫助的話)。若你想裝的軟體的源碼是這種格式的話,宜將其下載到我們在第一步 里建立的/usr/local/src目錄。如果你的tarball是個.gz文件,運<code><nowiki>tar xzvf tarballname.tar.gz</nowiki></code>以解壓縮,對.bz2文件,使用類似的<code><nowiki>tar xjvf tarballname.tar.bz2</nowiki></code>命令。 | 大多數你通常需要的軟體來自釋放的tarball。它們只是一些壓縮文檔,通常的格式為.tar.gz或.tar.bz2————好比Windows上的.zip 文件和MacOSX上的.sit(如果這樣的類比對你有幫助的話)。若你想裝的軟體的源碼是這種格式的話,宜將其下載到我們在第一步 里建立的/usr/local/src目錄。如果你的tarball是個.gz文件,運<code><nowiki>tar xzvf tarballname.tar.gz</nowiki></code>以解壓縮,對.bz2文件,使用類似的<code><nowiki>tar xjvf tarballname.tar.bz2</nowiki></code>命令。 | ||
在罕見的情況下,是從cvs或者subversion倉庫取得程式,一般開發者會在他們的網站上提供指導的。若已安裝第一步列出的軟體包,只需轉到 /usr/local/src目錄(cd /usr/local/src),運行列出的命令。具體的步驟因程式而異,所以這裡我沒法幫你,但是只要有上述軟體包,開發者提供的 指導應該能順利運行。 | |||
在罕見的情況下,是從cvs或者subversion倉庫取得程式,一般開發者會在他們的網站上提供指導的。若已安裝第一步列出的軟體包,只需轉到 /usr/local/src目錄(cd /usr/local/src),運行列出的命令。具體的步驟因程式而異,所以這裡我沒法幫你,但是只要有上述軟體包,開發者提供的 指導應該能順利運行。 | 在罕見的情況下,是從cvs或者subversion倉庫取得程式,一般開發者會在他們的網站上提供指導的。若已安裝第一步列出的軟體包,只需轉到 /usr/local/src目錄(cd /usr/local/src),運行列出的命令。具體的步驟因程式而異,所以這裡我沒法幫你,但是只要有上述軟體包,開發者提供的 指導應該能順利運行。 | ||
2009年4月19日 (日) 21:30的版本
文章出处: |
{{#if: | {{{2}}} | https://help.ubuntu.com/community/CompilingEasyHowTo }} |
点击翻译: |
English {{#ifexist: {{#if: UbuntuHelp:CompilingEasyHowTo | UbuntuHelp:CompilingEasyHowTo | {{#if: | :}}CompilingEasyHowTo/zh}}/af | • {{#if: UbuntuHelp:CompilingEasyHowTo|Afrikaans| [[::CompilingEasyHowTo/zh/af|Afrikaans]]}}|}} {{#ifexist: {{#if: UbuntuHelp:CompilingEasyHowTo | UbuntuHelp:CompilingEasyHowTo | {{#if: | :}}CompilingEasyHowTo/zh}}/ar | • {{#if: UbuntuHelp:CompilingEasyHowTo|العربية| [[::CompilingEasyHowTo/zh/ar|العربية]]}}|}} {{#ifexist: {{#if: UbuntuHelp:CompilingEasyHowTo | UbuntuHelp:CompilingEasyHowTo | {{#if: | :}}CompilingEasyHowTo/zh}}/az | • {{#if: UbuntuHelp:CompilingEasyHowTo|azərbaycanca| [[::CompilingEasyHowTo/zh/az|azərbaycanca]]}}|}} {{#ifexist: {{#if: UbuntuHelp:CompilingEasyHowTo | UbuntuHelp:CompilingEasyHowTo | {{#if: | :}}CompilingEasyHowTo/zh}}/bcc | • {{#if: UbuntuHelp:CompilingEasyHowTo|جهلسری بلوچی| [[::CompilingEasyHowTo/zh/bcc|جهلسری بلوچی]]}}|}} {{#ifexist: {{#if: UbuntuHelp:CompilingEasyHowTo | UbuntuHelp:CompilingEasyHowTo | {{#if: | :}}CompilingEasyHowTo/zh}}/bg | • {{#if: UbuntuHelp:CompilingEasyHowTo|български| [[::CompilingEasyHowTo/zh/bg|български]]}}|}} {{#ifexist: {{#if: UbuntuHelp:CompilingEasyHowTo | UbuntuHelp:CompilingEasyHowTo | {{#if: | :}}CompilingEasyHowTo/zh}}/br | • {{#if: UbuntuHelp:CompilingEasyHowTo|brezhoneg| [[::CompilingEasyHowTo/zh/br|brezhoneg]]}}|}} {{#ifexist: {{#if: UbuntuHelp:CompilingEasyHowTo | UbuntuHelp:CompilingEasyHowTo | {{#if: | :}}CompilingEasyHowTo/zh}}/ca | • {{#if: UbuntuHelp:CompilingEasyHowTo|català| [[::CompilingEasyHowTo/zh/ca|català]]}}|}} {{#ifexist: {{#if: UbuntuHelp:CompilingEasyHowTo | UbuntuHelp:CompilingEasyHowTo | {{#if: | :}}CompilingEasyHowTo/zh}}/cs | • {{#if: UbuntuHelp:CompilingEasyHowTo|čeština| [[::CompilingEasyHowTo/zh/cs|čeština]]}}|}} {{#ifexist: {{#if: UbuntuHelp:CompilingEasyHowTo | UbuntuHelp:CompilingEasyHowTo | {{#if: | :}}CompilingEasyHowTo/zh}}/de | • {{#if: UbuntuHelp:CompilingEasyHowTo|Deutsch| [[::CompilingEasyHowTo/zh/de|Deutsch]]}}|}} {{#ifexist: {{#if: UbuntuHelp:CompilingEasyHowTo | UbuntuHelp:CompilingEasyHowTo | {{#if: | :}}CompilingEasyHowTo/zh}}/el | • {{#if: UbuntuHelp:CompilingEasyHowTo|Ελληνικά| [[::CompilingEasyHowTo/zh/el|Ελληνικά]]}}|}} {{#ifexist: {{#if: UbuntuHelp:CompilingEasyHowTo | UbuntuHelp:CompilingEasyHowTo | {{#if: | :}}CompilingEasyHowTo/zh}}/es | • {{#if: UbuntuHelp:CompilingEasyHowTo|español| [[::CompilingEasyHowTo/zh/es|español]]}}|}} {{#ifexist: {{#if: UbuntuHelp:CompilingEasyHowTo | UbuntuHelp:CompilingEasyHowTo | {{#if: | :}}CompilingEasyHowTo/zh}}/fa | • {{#if: UbuntuHelp:CompilingEasyHowTo|فارسی| [[::CompilingEasyHowTo/zh/fa|فارسی]]}}|}} {{#ifexist: {{#if: UbuntuHelp:CompilingEasyHowTo | UbuntuHelp:CompilingEasyHowTo | {{#if: | :}}CompilingEasyHowTo/zh}}/fi | • {{#if: UbuntuHelp:CompilingEasyHowTo|suomi| [[::CompilingEasyHowTo/zh/fi|suomi]]}}|}} {{#ifexist: {{#if: UbuntuHelp:CompilingEasyHowTo | UbuntuHelp:CompilingEasyHowTo | {{#if: | :}}CompilingEasyHowTo/zh}}/fr | • {{#if: UbuntuHelp:CompilingEasyHowTo|français| [[::CompilingEasyHowTo/zh/fr|français]]}}|}} {{#ifexist: {{#if: UbuntuHelp:CompilingEasyHowTo | UbuntuHelp:CompilingEasyHowTo | {{#if: | :}}CompilingEasyHowTo/zh}}/gu | • {{#if: UbuntuHelp:CompilingEasyHowTo|ગુજરાતી| [[::CompilingEasyHowTo/zh/gu|ગુજરાતી]]}}|}} {{#ifexist: {{#if: UbuntuHelp:CompilingEasyHowTo | UbuntuHelp:CompilingEasyHowTo | {{#if: | :}}CompilingEasyHowTo/zh}}/he | • {{#if: UbuntuHelp:CompilingEasyHowTo|עברית| [[::CompilingEasyHowTo/zh/he|עברית]]}}|}} {{#ifexist: {{#if: UbuntuHelp:CompilingEasyHowTo | UbuntuHelp:CompilingEasyHowTo | {{#if: | :}}CompilingEasyHowTo/zh}}/hu | • {{#if: UbuntuHelp:CompilingEasyHowTo|magyar| [[::CompilingEasyHowTo/zh/hu|magyar]]}}|}} {{#ifexist: {{#if: UbuntuHelp:CompilingEasyHowTo | UbuntuHelp:CompilingEasyHowTo | {{#if: | :}}CompilingEasyHowTo/zh}}/id | • {{#if: UbuntuHelp:CompilingEasyHowTo|Bahasa Indonesia| [[::CompilingEasyHowTo/zh/id|Bahasa Indonesia]]}}|}} {{#ifexist: {{#if: UbuntuHelp:CompilingEasyHowTo | UbuntuHelp:CompilingEasyHowTo | {{#if: | :}}CompilingEasyHowTo/zh}}/it | • {{#if: UbuntuHelp:CompilingEasyHowTo|italiano| [[::CompilingEasyHowTo/zh/it|italiano]]}}|}} {{#ifexist: {{#if: UbuntuHelp:CompilingEasyHowTo | UbuntuHelp:CompilingEasyHowTo | {{#if: | :}}CompilingEasyHowTo/zh}}/ja | • {{#if: UbuntuHelp:CompilingEasyHowTo|日本語| [[::CompilingEasyHowTo/zh/ja|日本語]]}}|}} {{#ifexist: {{#if: UbuntuHelp:CompilingEasyHowTo | UbuntuHelp:CompilingEasyHowTo | {{#if: | :}}CompilingEasyHowTo/zh}}/ko | • {{#if: UbuntuHelp:CompilingEasyHowTo|한국어| [[::CompilingEasyHowTo/zh/ko|한국어]]}}|}} {{#ifexist: {{#if: UbuntuHelp:CompilingEasyHowTo | UbuntuHelp:CompilingEasyHowTo | {{#if: | :}}CompilingEasyHowTo/zh}}/ksh | • {{#if: UbuntuHelp:CompilingEasyHowTo|Ripoarisch| [[::CompilingEasyHowTo/zh/ksh|Ripoarisch]]}}|}} {{#ifexist: {{#if: UbuntuHelp:CompilingEasyHowTo | UbuntuHelp:CompilingEasyHowTo | {{#if: | :}}CompilingEasyHowTo/zh}}/mr | • {{#if: UbuntuHelp:CompilingEasyHowTo|मराठी| [[::CompilingEasyHowTo/zh/mr|मराठी]]}}|}} {{#ifexist: {{#if: UbuntuHelp:CompilingEasyHowTo | UbuntuHelp:CompilingEasyHowTo | {{#if: | :}}CompilingEasyHowTo/zh}}/ms | • {{#if: UbuntuHelp:CompilingEasyHowTo|Bahasa Melayu| [[::CompilingEasyHowTo/zh/ms|Bahasa Melayu]]}}|}} {{#ifexist: {{#if: UbuntuHelp:CompilingEasyHowTo | UbuntuHelp:CompilingEasyHowTo | {{#if: | :}}CompilingEasyHowTo/zh}}/nl | • {{#if: UbuntuHelp:CompilingEasyHowTo|Nederlands| [[::CompilingEasyHowTo/zh/nl|Nederlands]]}}|}} {{#ifexist: {{#if: UbuntuHelp:CompilingEasyHowTo | UbuntuHelp:CompilingEasyHowTo | {{#if: | :}}CompilingEasyHowTo/zh}}/no | • {{#if: UbuntuHelp:CompilingEasyHowTo|norsk| [[::CompilingEasyHowTo/zh/no|norsk]]}}|}} {{#ifexist: {{#if: UbuntuHelp:CompilingEasyHowTo | UbuntuHelp:CompilingEasyHowTo | {{#if: | :}}CompilingEasyHowTo/zh}}/oc | • {{#if: UbuntuHelp:CompilingEasyHowTo|occitan| [[::CompilingEasyHowTo/zh/oc|occitan]]}}|}} {{#ifexist: {{#if: UbuntuHelp:CompilingEasyHowTo | UbuntuHelp:CompilingEasyHowTo | {{#if: | :}}CompilingEasyHowTo/zh}}/pl | • {{#if: UbuntuHelp:CompilingEasyHowTo|polski| [[::CompilingEasyHowTo/zh/pl|polski]]}}|}} {{#ifexist: {{#if: UbuntuHelp:CompilingEasyHowTo | UbuntuHelp:CompilingEasyHowTo | {{#if: | :}}CompilingEasyHowTo/zh}}/pt | • {{#if: UbuntuHelp:CompilingEasyHowTo|português| [[::CompilingEasyHowTo/zh/pt|português]]}}|}} {{#ifexist: {{#if: UbuntuHelp:CompilingEasyHowTo | UbuntuHelp:CompilingEasyHowTo | {{#if: | :}}CompilingEasyHowTo/zh}}/ro | • {{#if: UbuntuHelp:CompilingEasyHowTo|română| [[::CompilingEasyHowTo/zh/ro|română]]}}|}} {{#ifexist: {{#if: UbuntuHelp:CompilingEasyHowTo | UbuntuHelp:CompilingEasyHowTo | {{#if: | :}}CompilingEasyHowTo/zh}}/ru | • {{#if: UbuntuHelp:CompilingEasyHowTo|русский| [[::CompilingEasyHowTo/zh/ru|русский]]}}|}} {{#ifexist: {{#if: UbuntuHelp:CompilingEasyHowTo | UbuntuHelp:CompilingEasyHowTo | {{#if: | :}}CompilingEasyHowTo/zh}}/si | • {{#if: UbuntuHelp:CompilingEasyHowTo|සිංහල| [[::CompilingEasyHowTo/zh/si|සිංහල]]}}|}} {{#ifexist: {{#if: UbuntuHelp:CompilingEasyHowTo | UbuntuHelp:CompilingEasyHowTo | {{#if: | :}}CompilingEasyHowTo/zh}}/sq | • {{#if: UbuntuHelp:CompilingEasyHowTo|shqip| [[::CompilingEasyHowTo/zh/sq|shqip]]}}|}} {{#ifexist: {{#if: UbuntuHelp:CompilingEasyHowTo | UbuntuHelp:CompilingEasyHowTo | {{#if: | :}}CompilingEasyHowTo/zh}}/sr | • {{#if: UbuntuHelp:CompilingEasyHowTo|српски / srpski| [[::CompilingEasyHowTo/zh/sr|српски / srpski]]}}|}} {{#ifexist: {{#if: UbuntuHelp:CompilingEasyHowTo | UbuntuHelp:CompilingEasyHowTo | {{#if: | :}}CompilingEasyHowTo/zh}}/sv | • {{#if: UbuntuHelp:CompilingEasyHowTo|svenska| [[::CompilingEasyHowTo/zh/sv|svenska]]}}|}} {{#ifexist: {{#if: UbuntuHelp:CompilingEasyHowTo | UbuntuHelp:CompilingEasyHowTo | {{#if: | :}}CompilingEasyHowTo/zh}}/th | • {{#if: UbuntuHelp:CompilingEasyHowTo|ไทย| [[::CompilingEasyHowTo/zh/th|ไทย]]}}|}} {{#ifexist: {{#if: UbuntuHelp:CompilingEasyHowTo | UbuntuHelp:CompilingEasyHowTo | {{#if: | :}}CompilingEasyHowTo/zh}}/tr | • {{#if: UbuntuHelp:CompilingEasyHowTo|Türkçe| [[::CompilingEasyHowTo/zh/tr|Türkçe]]}}|}} {{#ifexist: {{#if: UbuntuHelp:CompilingEasyHowTo | UbuntuHelp:CompilingEasyHowTo | {{#if: | :}}CompilingEasyHowTo/zh}}/vi | • {{#if: UbuntuHelp:CompilingEasyHowTo|Tiếng Việt| [[::CompilingEasyHowTo/zh/vi|Tiếng Việt]]}}|}} {{#ifexist: {{#if: UbuntuHelp:CompilingEasyHowTo | UbuntuHelp:CompilingEasyHowTo | {{#if: | :}}CompilingEasyHowTo/zh}}/yue | • {{#if: UbuntuHelp:CompilingEasyHowTo|粵語| [[::CompilingEasyHowTo/zh/yue|粵語]]}}|}} {{#ifexist: {{#if: UbuntuHelp:CompilingEasyHowTo | UbuntuHelp:CompilingEasyHowTo | {{#if: | :}}CompilingEasyHowTo/zh}}/zh | • {{#if: UbuntuHelp:CompilingEasyHowTo|中文| [[::CompilingEasyHowTo/zh/zh|中文]]}}|}} {{#ifexist: {{#if: UbuntuHelp:CompilingEasyHowTo | UbuntuHelp:CompilingEasyHowTo | {{#if: | :}}CompilingEasyHowTo/zh}}/zh-hans | • {{#if: UbuntuHelp:CompilingEasyHowTo|中文(简体)| [[::CompilingEasyHowTo/zh/zh-hans|中文(简体)]]}}|}} {{#ifexist: {{#if: UbuntuHelp:CompilingEasyHowTo | UbuntuHelp:CompilingEasyHowTo | {{#if: | :}}CompilingEasyHowTo/zh}}/zh-hant | • {{#if: UbuntuHelp:CompilingEasyHowTo|中文(繁體)| [[::CompilingEasyHowTo/zh/zh-hant|中文(繁體)]]}}|}} |
{{#ifeq:UbuntuHelp:CompilingEasyHowTo|:CompilingEasyHowTo/zh|请不要直接编辑翻译本页,本页将定期与来源同步。}} |
{{#ifexist: :CompilingEasyHowTo/zh/zh | | {{#ifexist: CompilingEasyHowTo/zh/zh | | {{#ifeq: {{#titleparts:CompilingEasyHowTo/zh|1|-1|}} | zh | | }} }} }} {{#ifeq: {{#titleparts:CompilingEasyHowTo/zh|1|-1|}} | zh | | }}
让我们假定你是一个具有一定经验的Linux使用者,你想从Internet线下安装一个应用程序,但是没有能在你的系统上正常工作的软件包。大量用户,甚至具有相当经验的用户,从tarball(译者注:这里指用tar打包压缩的源码)到安装完毕的程序的过程中都会 遇到问题,仅仅是因为他们不了解完成这一任务的相当简单的几步。但是只有你已经知道如何去做,它才显得简单!所以,这里是一个 从开发者站点安装东西的快速指南。
第一步:为制作软件包准备系统
默认情况下,Ubuntu并不预装需要的工具。你需要安装build-essential包,以便处理大部分的软件包。既然你可能想要得到一些不提供发行版的项目的代码,你应该同时安装cvs和subversion包——如果你觉得你需要它们。接着你应该为你自己建立一个普通的目录,你将在这个目录下制作软件包。我建议创建/usr/local/src
,并运行sudo chown username /usr/local/src
,以及 sudo chmod u+rwx /usr/local/src
(后者只是出于安全考虑)。做完这个,你可以开始安装了,先设法获得你需要的程序(源码)。
第二步:獲得所需軟體
大多數你通常需要的軟體來自釋放的tarball。它們只是一些壓縮文檔,通常的格式為.tar.gz或.tar.bz2————好比Windows上的.zip 文件和MacOSX上的.sit(如果這樣的類比對你有幫助的話)。若你想裝的軟體的源碼是這種格式的話,宜將其下載到我們在第一步 里建立的/usr/local/src目錄。如果你的tarball是個.gz文件,運tar xzvf tarballname.tar.gz
以解壓縮,對.bz2文件,使用類似的tar xjvf tarballname.tar.bz2
命令。
在罕見的情況下,是從cvs或者subversion倉庫取得程式,一般開發者會在他們的網站上提供指導的。若已安裝第一步列出的軟體包,只需轉到 /usr/local/src目錄(cd /usr/local/src),運行列出的命令。具體的步驟因程式而異,所以這裡我沒法幫你,但是只要有上述軟體包,開發者提供的 指導應該能順利運行。 在罕見的情況下,是從cvs或者subversion倉庫取得程式,一般開發者會在他們的網站上提供指導的。若已安裝第一步列出的軟體包,只需轉到 /usr/local/src目錄(cd /usr/local/src),運行列出的命令。具體的步驟因程式而異,所以這裡我沒法幫你,但是只要有上述軟體包,開發者提供的 指導應該能順利運行。
第三步:解决依赖性问题
现代Linux发行版有一个值得称道的地方,就是它们替用户处理依赖性问题。这就是说,如果你想安装程序,apt-get程序将确保在你安装的时候,安装 了所有需要的库以及其他依赖程序,安装一个程序再简单不过了,你永远只需要指定所要按装的程序,apt-get程序会完成剩下的工作。不幸的是, 处理tarball完全不是这回事,你得手工解决依赖性问题。正是这一阶段绊倒了一些相当有经验的使用者,他们常常由于无法搞清楚所需的依赖程序,而在 沮丧中放弃。
作为预备,安装apt-file包,接着运行sudo apt-file update
。这将下载所有可用的软件包以及这些软件包所含的所有文件的列表,这可能是个大 家伙。apt-file有一些有趣的功能,最有用的两个是apt-file search
(按文件名搜索)和apt-file list
(列出给定的软件包中的所有文件)。
要检查你的出现的依赖性,转到你第二步里创建的目录(cd /usr/local/src)。解压缩tarball或者下载自cvs/subversion的文件,这会在 /usr/local/src下建立一个含有源码的子目录。这一新建目录会包含一个叫做"configure"的文件,那是一个确保程序可以在你的电脑上编译的脚本。 运行命令./configure来运行这个脚本[[FootNote(若不加任何参数运行 ./configure,你将使用程序的默认设置。大多数程序有一些你可以启用或禁用的设定,若对此感兴趣,察看README和INSTALL 文件,察看开发者的文档,许多情况下,./configure --help将列出一些可以修改的关键配置。一个非常常用的参数是./configure --prefix=/usr, 这将把你的应用程序安装到/usr,而不是如我的说明,装到/usr/local。)]]。这个命令会检查你是否有安装程序所需的所有程序————大多数情况下答案是否定的, 那它就会在运行中遇到错误,并提示需要某个程序。
如果上述情况发生了,输出的最后一行会类似下面的:configure: error: Library requirements (gobbletygook) not met
,后面还有一些 我们不关心的废话。但就在上面它会列出找不到的文件名称,据我的经验,大多数情况下,会列出一个以".pc"结尾的文件。你接着要做的是运行 apt-file search 找不到的文件名称.pc
,这会告诉你在哪个Ubuntu包里有缺少的文件。接下来,你只需sudo apt-get install 所需包
安装 即可。接着再试试运行./configure,看看行不行。如果你得到一堆以config.status: creating Makefile
结尾的文本,并且 config.status: creating Makefile
后面明显没有错误信息,那你就可以进入一步了。
第四步:制作和安装
如果你已经到这里了,那你已经完成最艰难的部分了。现在你需要做的只是运行命令make,这会完成程序的实际制作(编译)。若程序很大或你的电脑非常 缓慢,去喝一杯咖啡之类的。完成后,运行sudo make install,它会为你完成最后阶段的安装。完成后(这该不会花多久),你的程序将被安装到 /usr/local/bin,你应该可以顺利地运行它。
Step 5:附言
如果这些对你而言太难了,别为此烦恼。毕竟你用的是Ubuntu Linux,它已经把所有你实际需要的软件打包了。如果还没有软件包,它认为,除了一些特殊情形,你并不真的需要这个软件,而且不管怎样,几个月内有人会为你打包的。事实上,你需要这样制作和编译的程序仅仅是那些新的(也许现在还不稳定或者还没为你的 桌面准备好)————若嫌此编译过程过难,好,也许你该重新考虑一下为什么你想这样做,然后只要等几个月以后的下一个稳定的发行版。
若所求软件包非常重要,并且你认为它值得适当地出现在Ubuntu中,也许你可以联系 Masters of the Universe,看看他们能否为你做这项艰难 的工作———— 如果他们将某个软件打包了,那任何人就不用编译即可安装了。但是,如果你可以顺利完成上面的编译,在通向专家级Linux用户的道路上,你将走的更好——-在你编译了几次后,你会为所有的这一切如此容易而感到惊讶的。祝你好运!
注:容易指“比你扯下头发,一边绕着屋子跑一边尖叫Linux多么糟糕容易“。并不是真的很容易。