Archive:Getting Started/Build/KDE4 (zh CN): Difference between revisions
create chinese version, based on the initial translation from Huanzhou Zhu |
m AnneW moved page Getting Started/Build/KDE4 (zh CN) to Archive:Getting Started/Build/KDE4 (zh CN) without leaving a redirect: Obsolete |
||
(30 intermediate revisions by 13 users not shown) | |||
Line 1: | Line 1: | ||
<!--Huanzhou Zhu初稿,Liang Qi整理!--> | <!--Huanzhou Zhu初稿,Liang Qi整理!--> | ||
{{Template:I18n/Language Navigation Bar (zh_CN)|Getting_Started/Build/KDE4}} | |||
{{TutorialBrowser| | {{TutorialBrowser (zh_CN)| | ||
series=开始| | series=开始| | ||
Line 7: | Line 7: | ||
name=从源代码构建KDE4| | name=从源代码构建KDE4| | ||
pre=[[../../Sources/ | pre=[[../../Sources/Anonymous_SVN_(zh_CN)|匿名使用 SVN 快速指南]]| | ||
next=[[../../ | next=[[../../Set_up_KDE_4_for_development_(zh_CN)|启动KDE4环境和应用程序]]| | ||
reading=[http://kdesvn-build.kde.org/ kdesvn-build: | reading=[http://kdesvn-build.kde.org/ kdesvn-build: 从Subversion构建KDE]<br>[[../../Increased_Productivity_in_KDE4_with_Scripts_(zh_CN)|在 KDE4 中用脚本来提升效率]]<br>[[Development/Tutorials/CMake_(zh_CN) |CMake介绍]]<br>[[../KDE4/FreeBSD_(zh_CN)|FreeBSD备注]]<br>[[../KDE4/Mac OS X|Mac OS X指南]]| | ||
}} | }} | ||
== 摘要 == | == 摘要 == | ||
这份教程介绍了一种使从SVN主干获取的KDE在Linux/BSD系统上运行的方法。也有其他如[[Getting_Started/Build/KDE4/FreeBSD|FreeBSD]], [http://www.kdelibs.com/ Windows], [[Getting_Started/Build/KDE4/Mac OS X|Mac OS X]] 和[http://solaris.kde.org/ Solaris]等系统的教程。本教程将创建一个特殊的使用者:kde-devel,用来执行 KDE trunk。一方面,这使得其他使用者可以继续使用其他 KDE 版本。另一方面,测试特殊的全系统程序代码,如 KDE 显示管理员是不可能的。这里有一个教程[[Getting_Started/Build/KDE4/onVmWare|设定 KDE 4 trunk 在 virtual machine 上]]。 | |||
{{note| | 这份教程通篇使用了"bash shell"。 | ||
{{note|当“周一”提交了重大的修改时,发生构建错误的风险会很大。可以通过[http://developer.kde.org/~dirk/dashboard/ Dashboard]报告意料之外的破坏。非常欢迎大家修复失败的模块。 | |||
}} | }} | ||
Line 38: | Line 40: | ||
{{Note| | {{Note| | ||
一些人喜欢为KDE | 一些人喜欢为KDE 4使用一个单独的用户帐户(例如一个旧的bug可能会误删除文件),并且后面的这些指令都是以这种方式进行的。 | ||
使用一个单独的用户帐户做任何事情都是很有效率的,有关细节请参考[[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts| | 使用一个单独的用户帐户做任何事情都是很有效率的,有关细节请参考[[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts|在KDE4中使用脚本提高生产率]]。 | ||
你还可以遵循下面的指令,但并不把这些环境变量保存到你的<tt>.bashrc</tt>中,请把他们放到一个单独的文件中,以备你在切换到KDE | 你还可以遵循下面的指令,但并不把这些环境变量保存到你的<tt>.bashrc</tt>中,请把他们放到一个单独的文件中,以备你在切换到KDE 4环境时使用。 | ||
}} | }} | ||
=== 选项1:命令行 === | === 选项1:命令行 === | ||
< | {{Note| | ||
在某些系统上,新用户的配置在默认情况下使用{{path|/bin/sh}}。使用 {{path|/bin/sh}} 非常不方便工作,您可能需要更改为 {{path|/bin/bash}} 或其他shell。 | |||
</ | 在 Ark Linux 和 Fedora,你可以用<tt>-s /bin/bash</tt>切换 {{path|/bin/sh}}为 {{path|bash}}。 | ||
}} | |||
< | |||
useradd kde-devel | <syntaxhighlight lang="bash"> | ||
useradd -m kde-devel -s /bin/bash | |||
passwd kde-devel | passwd kde-devel | ||
</syntaxhighlight> | |||
{{Warning| | |||
新的 kde-devel 使用者不会自动加入到所有的使用者群组,因此还不够完整,无法执行 sudo 等。编辑您的 /etc/group 文件加入 kde-devel 使用者到所有您需要的群组(可能是您的普通使用者已经分配的群组)。 | |||
}} | |||
=== 选项2:使用KControl === | === 选项2:使用KControl === | ||
如果你已经安装了KDE3,你可以使用KDE控制中心里的用户管理模块来替代上述的命令添加用户。 | |||
=== 设置环境 === | === 设置环境 === | ||
从你的普通账户下拷贝{{path|~/.bashrc}}到新的kde-devel账户下。然后,把[[Getting Started/Increased Productivity in KDE4 with Scripts/.bashrc_(zh_CN)|.bashrc示例]]的内容复制并且粘贴到{{path|~kde-devel/.bashrc}}。如果你不能使用<tt>makeobj</tt>命令,请把例子中的<tt>alias make=makeobj</tt>这一行注释掉。此外,您可以下载 kde-sdk 軟件包(或执行 subversion checkout)和含入 kde-sdk/scripts/目录在您的 path。您可能还需要修改 path,以确保它不包括您的KDE3 的路径。另外,如果你想使用 KDevelop 开发 KDE 4 应用程序您可能要给 ''cmake'' 指令加入 ''-GKDevelop3'' 参数(以让 CMake 生成 KDevelop 的项目文件,这将有助于避免在未来的重建,请见[[Getting_Started/Set_up_KDE_4_for_development#Setting_up_the_environment|这里]])。 | |||
这样就可以访问本教程中所使用的如<tt>cmakekde</tt>这类命令,同时保证了Qt、KDE、CMake文件的正确的路径。 | 这样就可以访问本教程中所使用的如<tt>cmakekde</tt>这类命令,同时保证了Qt、KDE、CMake文件的正确的路径。 | ||
更多的信息,请阅读[[Getting Started/ | 更多的信息,请阅读[[Getting Started/Increased_Productivity_in_KDE4_with_Scripts_(zh_CN)|在 KDE4 中用脚本来提升效率]]。 | ||
=== 切换到新用户 === | === 切换到新用户 === | ||
切换到用户kde- | 切换到用户kde-devel:(不要忘了输入横线) | ||
< | <syntaxhighlight lang="bash"> | ||
su - kde-devel | su - kde-devel | ||
</ | </syntaxhighlight> | ||
{{Note| | |||
如果 ssh 指令无效,请查看[[Getting_Started/Set_up_KDE_4_for_development#Launching_KDE_4_apps|启动 KDE 4 应用程序]]。 | |||
}} | |||
== 开发用户的shell == | == 开发用户的shell == | ||
在有些系统上,新用户被默认配置使用{{path|/bin/sh}}。如果你的系统不是这样,请跳过这一节。使用{{path|/bin/sh}}非常不方便,你可能希望转换到{{path|/bin/bash}}或其他的shell。 | |||
=== 选项1:作为kde-devel用户 === | === 选项1:作为kde-devel用户 === | ||
如果你没有root特权,同时你的系统支持使用<tt>chsh</tt>程序来转换你自己的shell,那你可以尝试使用这条命令来把你的shell转换到{{path|/bin/bash}}: | 如果你没有root特权,同时你的系统支持使用<tt>chsh</tt>程序来转换你自己的shell,那你可以尝试使用这条命令来把你的shell转换到{{path|/bin/bash}}: | ||
< | <syntaxhighlight lang="bash"> | ||
chsh -s /bin/bash kde-devel | chsh -s /bin/bash kde-devel | ||
</ | </syntaxhighlight> | ||
=== 选项2:作为root用户 === | === 选项2:作为root用户 === | ||
如果你的系统带有<tt>usermod</tt>程序,你可以以root身份运行以下命令:<tt>usermod -s /bin/bash kde-devel</tt>。另一个选择是以root身份使用<tt>vipw</tt>程序安全的编辑你的{{path|/etc/passwd}}。在文件中找到“kde-devel”,将行尾的“{{path|/bin/sh}}”改为“{{path|/bin/bash}}”。保存你的修改并退出。 | |||
新的shell将在你再次使用kde-devel用户登录时自动启动。 | 新的shell将在你再次使用kde-devel用户登录时自动启动。 | ||
== | == 发行版的必需軟件包 == | ||
从原始码建构 kde4 的必需軟件包在不同的发行版也不同。您的发行版指示如下: | |||
* [[Getting_Started/Build/KDE4/Ark Linux|Ark Linux]] | |||
* [[Getting_Started/Build/KDE4/Arch Linux|Arch Linux]] | |||
* [[Getting_Started/Build/KDE4/Fedora|Fedora]] | |||
* [[Getting_Started/Build/KDE4/Kubuntu and Debian|Kubuntu and Debian]] | |||
* [[Getting_Started/Build/KDE4/openSUSE|openSUSE]] 注:有一个 [http://en.opensuse.org/KDE/Developing/Guide openSUSE 具体指导]。不过要小心,因为它更新了大量的稳定軟件包。 | |||
* [[Getting_Started/Build/KDE4/Gentoo|Gentoo]] | |||
* [[Getting_Started/Build/KDE4/LFS|Linux from Scratch]] 或从原始码建构。 | |||
* [[Getting_Started/Build/KDE4/Mandriva|Mandriva]] | |||
* [[Getting_Started/Build/KDE4/Generic|任何其他发行版]] | |||
您的下一个编译步骤取决于发行版提供的套件包。 | |||
== | === 编译 kde-qt 等 === | ||
如果您不希望使用由发行版提供的軟件包,您可以自己编译,如 Qt。建构包括 CMake、Qt4(kde-qt)和 kdesupport 依赖的指示在[[Getting_Started/Build/KDE4/Prerequisites (zh CN)|建构的事先需要页面]]。请注意,automoc、phonon、strigi、soprano 以及其他一些 kdesupport 中的东西,如果您有这些东西缺失的错误,你需要取得 kdesupport。 | |||
== 建构 KDE 给开发或稳定使用 == | |||
下面的命令用于从 trunk 建构最新版的不稳定 KDE。这不应该用在生产环境,但推荐给开发者。 | |||
想要建构稳定版本,请访问: | |||
http://techbase.kde.org/Getting_Started/Build/KDE4.x | |||
== kdelibs == | == kdelibs == | ||
构建好Qt4和Strigi之后,我们现在可以开始构建KDE的基础库了,如果你使用了上述的[[Getting Started/Increased Productivity in KDE4 with Scripts/.bashrc|.bashrc] | 构建好Qt4和Strigi之后,我们现在可以开始构建KDE的基础库了,如果你使用了上述的[[Getting Started/Increased Productivity in KDE4 with Scripts/.bashrc|.bashrc]],里面就会有那些新的功能。 | ||
=== 秘诀 === | === 秘诀 === | ||
<!--'cs'和'cb'不是拼写错误!--> | <!--'cs'和'cb'不是拼写错误!--> | ||
< | <syntaxhighlight lang="bash"> | ||
cd $KDE_SRC | cd $KDE_SRC | ||
mkdir KDE && cd KDE | mkdir KDE && cd KDE | ||
Line 213: | Line 141: | ||
cd kdelibs | cd kdelibs | ||
cmakekde | cmakekde | ||
</ | </syntaxhighlight> | ||
{{tip|如果命令失败,并提示“CMake requires an out of source build directory”,请移除~/src/KDE/kdelibs/CMakeCache.txt,然后再次尝试。}} | {{tip|如果命令失败,并提示“CMake requires an out of source build directory”,请移除~/src/KDE/kdelibs/CMakeCache.txt,然后再次尝试。}} | ||
{{tip|如果<tt>cmakekde</tt>还输出同样的错误,那试试这个: | {{tip|如果<tt>cmakekde</tt>还输出同样的错误,那试试这个: | ||
< | <syntaxhighlight lang="bash"> | ||
cd | cd | ||
cmake -DCMAKE_INSTALL_PREFIX=$KDEDIR \ | cmake -DCMAKE_INSTALL_PREFIX=$KDEDIR \ | ||
Line 225: | Line 153: | ||
make | make | ||
make install | make install | ||
</ | </syntaxhighlight>}} | ||
=== 发生了什么 === | === 发生了什么 === | ||
我们先进入源文件的根目录(第1行),然后执行make并进入KDE目录(第2行)。使用subversion下载kdelibs的源码(第3行),进入新的{{path|~/src/KDE/kdelibs}}目录(第4行),并开始构建(第5行)。这将使我们在构建完成后仍留在kdelibs的构建目录里。 | 我们先进入源文件的根目录(第1行),然后执行make并进入KDE目录(第2行)。使用subversion下载kdelibs的源码(第3行),进入新的{{path|~/src/KDE/kdelibs}}目录(第4行),并开始构建(第5行)。这将使我们在构建完成后仍留在kdelibs的构建目录里。 | ||
{{tip| | {{tip|在这里你的系统上可能会缺少某些依赖关系!可以通过<tt>cmakekde</tt>的输出观察到这些缺少的依赖关系。你可能希望先执行<tt>cmake ~/src/KDE/MODULE_NAME</tt>来编译一些kde模块(比如kdelibs、kdepimlibs等)}} | ||
=== | === 附加的KDE特有CMake模块 === | ||
在{{path|kdelibs/cmake/modules/}} | 在{{path|kdelibs/cmake/modules/}}中有一些构建KDE4应用所需的附加CMake模块,它们会随kdelibs同时安装。 | ||
=== 疑难解答 === | === 疑难解答 === | ||
如果你在编译kdelibs时遇到问题,请先确认[[Getting_Started/Build/KDE4_(zh_CN)#所需软件|所需软件]] | 如果你在编译kdelibs时遇到问题,请先确认[[Getting_Started/Build/KDE4_(zh_CN)#所需软件|所需软件]]中提到的软件是否已能正确安装运行。其他的可能包括: | ||
* 如果你得到错误信息说“Please create a separate build directory and run 'cmake path_to_kdelibs [options]' there.”,那么你需要在运行cmakekde之前改变你的构建目录(例:<tt>cs KDE/kdelibs && cb && cmakekde</tt>) | * 如果你得到错误信息说“Please create a separate build directory and run 'cmake path_to_kdelibs [options]' there.”,那么你需要在运行cmakekde之前改变你的构建目录(例:<tt>cs KDE/kdelibs && cb && cmakekde</tt>) | ||
* | * 如果找不到Qt或者找到了错误版本的Qt,请确认路径中的第一个qmake就是你需要的qmake。 | ||
* 如果还是有问题,尝试CMake make-option <tt>--keep-going</tt>。 | * 如果还是有问题,尝试CMake make-option <tt>--keep-going</tt>。 | ||
* 这里你需要libungif库,不然你将得到象这样的错误信息“<tt>Could NOT find GIF</tt>”。 | * 这里你需要libungif库,不然你将得到象这样的错误信息“<tt>Could NOT find GIF</tt>”。 | ||
* Qt-4.3升级:如果你在kjsembed中得到关于QScriptEngine的链接错误,编辑kdelibs中的CMakeCache. | * Qt-4.3升级:如果你在kjsembed中得到关于QScriptEngine的链接错误,编辑kdelibs中的CMakeCache.txt并移除关于QT_QTUITOOLS_LIBRARY的那些行,然后再次输入make(这个静态库有新的依赖关系,需要运行cmake的代码添加它运行所需要的依赖)。 | ||
== kdepimlibs == | == kdepimlibs == | ||
Line 248: | Line 176: | ||
=== 秘诀 === | === 秘诀 === | ||
<!--'cs'和'cb'不是拼写错误!--> | <!--'cs'和'cb'不是拼写错误!--> | ||
< | <syntaxhighlight lang="bash"> | ||
cs KDE | cs KDE | ||
svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdepimlibs | svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdepimlibs | ||
cd kdepimlibs | cd kdepimlibs | ||
cmakekde | cmakekde | ||
</ | </syntaxhighlight> | ||
=== 发生了什么 === | === 发生了什么 === | ||
Line 261: | Line 189: | ||
一些kioslaves需要kdebase。 | 一些kioslaves需要kdebase。 | ||
<!--'cs'和'cb'不是拼写错误!--> | <!--'cs'和'cb'不是拼写错误!--> | ||
< | <syntaxhighlight lang="bash"> | ||
cs KDE | cs KDE | ||
svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase | svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase | ||
cd kdebase | cd kdebase | ||
cmakekde | cmakekde | ||
</ | </syntaxhighlight> | ||
=== 疑难解答 === | === 疑难解答 === | ||
如果你在编译kdebase时遇到问题: | 如果你在编译kdebase时遇到问题: | ||
* 请确认你安装了<tt>libxss的头文件</tt>。(如果你没有这些头文件,通常你会得到“undefined references on xscreensaver objects”) | * 请确认你安装了<tt>libxss的头文件</tt>。(如果你没有这些头文件,通常你会得到“undefined references on xscreensaver objects”) | ||
* 那个<tt> | * 那个<tt>meinproc4</tt>必须放到{{path|/home/kde-devel/kde/bin/meinproc4}} | ||
* 如果cmakekde无法找到kdepimlibs的路径,请编辑{{path|$KDE_BUILD/kdebase/CMakeCache.txt}}并手工设置<tt>KDEPIMLIBS_INCLUDE_DIR:PATH=$KDE_BUILD/kdepimlibs</tt> | * 如果cmakekde无法找到kdepimlibs的路径,请编辑{{path|$KDE_BUILD/kdebase/CMakeCache.txt}}并手工设置<tt>KDEPIMLIBS_INCLUDE_DIR:PATH=$KDE_BUILD/kdepimlibs</tt> | ||
* 如果你得到错误说“Please set the following variables: X11_XTest_LIB(ADVANCED)”, 请安装<tt>Xtst</tt>的开发包。有些系统上,这个包独立于<tt>xext</tt>,并取名为<tt>x11proto-xext-dev</tt>或者<tt>libxtst-dev</tt>。在安装完软件包后,你可能需要移除构建目录下的CMakeCache.txt。 | * 如果你得到错误说“Please set the following variables: X11_XTest_LIB(ADVANCED)”, 请安装<tt>Xtst</tt>的开发包。有些系统上,这个包独立于<tt>xext</tt>,并取名为<tt>x11proto-xext-dev</tt>或者<tt>libxtst-dev</tt>。在安装完软件包后,你可能需要移除构建目录下的CMakeCache.txt。 | ||
Line 277: | Line 205: | ||
== 生成本地API文档 == | == 生成本地API文档 == | ||
尽管我们在[http://api.kde.org api.kde.org]上提供了KDE的API文档,在你的硬盘上保存一份副本往往也是有必要的,例如你想要通过[[Getting_Started/Set_up_KDE_4_for_development#KDevelop|KDevelop]]浏览这些文档或你无法上网时。 | |||
注意,生成API文档需要几个小时并占用差不多500M的磁盘空间。文档的生成通过{{path|kdelibs/doc/api}}下的一个脚本完成,运行这个脚本你需要<tt>doxygen</tt>。 | 注意,生成API文档需要几个小时并占用差不多500M的磁盘空间。文档的生成通过{{path|kdelibs/doc/api}}下的一个脚本完成,运行这个脚本你需要<tt>doxygen</tt>。 | ||
Line 283: | Line 211: | ||
为了构建kdelibs的API文档,请输入下列命令: | 为了构建kdelibs的API文档,请输入下列命令: | ||
<!--'cs'和'cb'不是拼写错误!--> | <!--'cs'和'cb'不是拼写错误!--> | ||
< | <syntaxhighlight lang="bash"> | ||
cs KDE | cs KDE | ||
mkdir apidox | mkdir apidox | ||
cd apidox | cd apidox | ||
../kdelibs/doc/api/doxygen.sh ../kdelibs/ | ../kdelibs/doc/api/doxygen.sh ../kdelibs/ | ||
</ | </syntaxhighlight> | ||
== 成功了! == | == 成功了! == | ||
你现在可以使用构建kdebase一样的方法构建其他svn模块,运行并测试KDE4或者编写你自己的补丁和应用程序。 | 你现在可以使用构建kdebase一样的方法构建其他svn模块,运行并测试KDE4或者编写你自己的补丁和应用程序。 | ||
关于如何在你的新的KDE4环境下开始工作,请阅读[[Getting Started/Set up KDE 4 for development#Nested_KDE_4_session| | 关于如何在你的新的KDE4环境下开始工作,请阅读[[Getting Started/Set up KDE 4 for development#Nested_KDE_4_session|启动KDE4环境和应用]]。 | ||
[[Category:Build KDE]] | [[Category:Build KDE]] | ||
[[Category:KDE4]] | [[Category:KDE4]] |
Latest revision as of 12:26, 23 June 2013
Template:I18n/Language Navigation Bar (zh CN) Template:TutorialBrowser (zh CN)
摘要
这份教程介绍了一种使从SVN主干获取的KDE在Linux/BSD系统上运行的方法。也有其他如FreeBSD, Windows, Mac OS X 和Solaris等系统的教程。本教程将创建一个特殊的使用者:kde-devel,用来执行 KDE trunk。一方面,这使得其他使用者可以继续使用其他 KDE 版本。另一方面,测试特殊的全系统程序代码,如 KDE 显示管理员是不可能的。这里有一个教程设定 KDE 4 trunk 在 virtual machine 上。
这份教程通篇使用了"bash shell"。
所需软件
首先你必须安装以下软件,你才能成功完成这份教程:
- 来自gcc项目的gcc和g++, 最好是4.1或更高的版本。
- svn(Subversion客户端)
- pkg-config
- X11和OpenGL的开发库及头文件
- libjpeg、libpng、libungif、libxml2和libxslt的开发库及头文件
- makeobj脚本。可以做为kdesdk-scripts(debian)或类似的软件包的部件来安装,或者直接从WebSVN下载该软件本身。
- shared-mime-info软件包,是KDE现在使用的freedesktop MIME标准。
你也许还需要安装以下软件:
- bash
为KDE4开发创建一个用户账户
使用一个单独的用户帐户做任何事情都是很有效率的,有关细节请参考在KDE4中使用脚本提高生产率。
你还可以遵循下面的指令,但并不把这些环境变量保存到你的.bashrc中,请把他们放到一个单独的文件中,以备你在切换到KDE 4环境时使用。
选项1:命令行
useradd -m kde-devel -s /bin/bash
passwd kde-devel
选项2:使用KControl
如果你已经安装了KDE3,你可以使用KDE控制中心里的用户管理模块来替代上述的命令添加用户。
设置环境
从你的普通账户下拷贝~/.bashrc到新的kde-devel账户下。然后,把.bashrc示例的内容复制并且粘贴到~kde-devel/.bashrc。如果你不能使用makeobj命令,请把例子中的alias make=makeobj这一行注释掉。此外,您可以下载 kde-sdk 軟件包(或执行 subversion checkout)和含入 kde-sdk/scripts/目录在您的 path。您可能还需要修改 path,以确保它不包括您的KDE3 的路径。另外,如果你想使用 KDevelop 开发 KDE 4 应用程序您可能要给 cmake 指令加入 -GKDevelop3 参数(以让 CMake 生成 KDevelop 的项目文件,这将有助于避免在未来的重建,请见这里)。
这样就可以访问本教程中所使用的如cmakekde这类命令,同时保证了Qt、KDE、CMake文件的正确的路径。
更多的信息,请阅读在 KDE4 中用脚本来提升效率。
切换到新用户
切换到用户kde-devel:(不要忘了输入横线)
su - kde-devel
开发用户的shell
在有些系统上,新用户被默认配置使用/bin/sh。如果你的系统不是这样,请跳过这一节。使用/bin/sh非常不方便,你可能希望转换到/bin/bash或其他的shell。
选项1:作为kde-devel用户
如果你没有root特权,同时你的系统支持使用chsh程序来转换你自己的shell,那你可以尝试使用这条命令来把你的shell转换到/bin/bash:
chsh -s /bin/bash kde-devel
选项2:作为root用户
如果你的系统带有usermod程序,你可以以root身份运行以下命令:usermod -s /bin/bash kde-devel。另一个选择是以root身份使用vipw程序安全的编辑你的/etc/passwd。在文件中找到“kde-devel”,将行尾的“/bin/sh”改为“/bin/bash”。保存你的修改并退出。
新的shell将在你再次使用kde-devel用户登录时自动启动。
发行版的必需軟件包
从原始码建构 kde4 的必需軟件包在不同的发行版也不同。您的发行版指示如下:
- Ark Linux
- Arch Linux
- Fedora
- Kubuntu and Debian
- openSUSE 注:有一个 openSUSE 具体指导。不过要小心,因为它更新了大量的稳定軟件包。
- Gentoo
- Linux from Scratch 或从原始码建构。
- Mandriva
您的下一个编译步骤取决于发行版提供的套件包。
编译 kde-qt 等
如果您不希望使用由发行版提供的軟件包,您可以自己编译,如 Qt。建构包括 CMake、Qt4(kde-qt)和 kdesupport 依赖的指示在建构的事先需要页面。请注意,automoc、phonon、strigi、soprano 以及其他一些 kdesupport 中的东西,如果您有这些东西缺失的错误,你需要取得 kdesupport。
建构 KDE 给开发或稳定使用
下面的命令用于从 trunk 建构最新版的不稳定 KDE。这不应该用在生产环境,但推荐给开发者。
想要建构稳定版本,请访问:
http://techbase.kde.org/Getting_Started/Build/KDE4.x
kdelibs
构建好Qt4和Strigi之后,我们现在可以开始构建KDE的基础库了,如果你使用了上述的.bashrc,里面就会有那些新的功能。
秘诀
cd $KDE_SRC
mkdir KDE && cd KDE
svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs
cd kdelibs
cmakekde
cd
cmake -DCMAKE_INSTALL_PREFIX=$KDEDIR \
-DCMAKE_BUILD_TYPE=debugfull DKDE4_BUILD_TESTS=ON \
~/src/KDE/kdelibs
make
make install
发生了什么
我们先进入源文件的根目录(第1行),然后执行make并进入KDE目录(第2行)。使用subversion下载kdelibs的源码(第3行),进入新的~/src/KDE/kdelibs目录(第4行),并开始构建(第5行)。这将使我们在构建完成后仍留在kdelibs的构建目录里。
附加的KDE特有CMake模块
在kdelibs/cmake/modules/中有一些构建KDE4应用所需的附加CMake模块,它们会随kdelibs同时安装。
疑难解答
如果你在编译kdelibs时遇到问题,请先确认所需软件中提到的软件是否已能正确安装运行。其他的可能包括:
- 如果你得到错误信息说“Please create a separate build directory and run 'cmake path_to_kdelibs [options]' there.”,那么你需要在运行cmakekde之前改变你的构建目录(例:cs KDE/kdelibs && cb && cmakekde)
- 如果找不到Qt或者找到了错误版本的Qt,请确认路径中的第一个qmake就是你需要的qmake。
- 如果还是有问题,尝试CMake make-option --keep-going。
- 这里你需要libungif库,不然你将得到象这样的错误信息“Could NOT find GIF”。
- Qt-4.3升级:如果你在kjsembed中得到关于QScriptEngine的链接错误,编辑kdelibs中的CMakeCache.txt并移除关于QT_QTUITOOLS_LIBRARY的那些行,然后再次输入make(这个静态库有新的依赖关系,需要运行cmake的代码添加它运行所需要的依赖)。
kdepimlibs
在kdelibs之后,kdebase之前,你需要构建和安装kdepimlibs。
秘诀
cs KDE
svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdepimlibs
cd kdepimlibs
cmakekde
发生了什么
我们先进入KDE源码目录(第1行)。使用subversion下载kdepimlibs的源码(第2行),进入新的~/src/KDE/kdepimlibs目录(第3行),并开始构建(第4行)。这将使我们在构建完成后仍留在kdepimlibs的构建目录里。
kdebase
一些kioslaves需要kdebase。
cs KDE
svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase
cd kdebase
cmakekde
疑难解答
如果你在编译kdebase时遇到问题:
- 请确认你安装了libxss的头文件。(如果你没有这些头文件,通常你会得到“undefined references on xscreensaver objects”)
- 那个meinproc4必须放到/home/kde-devel/kde/bin/meinproc4
- 如果cmakekde无法找到kdepimlibs的路径,请编辑$KDE_BUILD/kdebase/CMakeCache.txt并手工设置KDEPIMLIBS_INCLUDE_DIR:PATH=$KDE_BUILD/kdepimlibs
- 如果你得到错误说“Please set the following variables: X11_XTest_LIB(ADVANCED)”, 请安装Xtst的开发包。有些系统上,这个包独立于xext,并取名为x11proto-xext-dev或者libxtst-dev。在安装完软件包后,你可能需要移除构建目录下的CMakeCache.txt。
- 和“X11_Xinerama_LIB (ADVANCED)”一样,你需要安装xinerama的开发包
- 如果你得到错误说“Please set the following variables: FONTCONFIG_INCLUDE_DIR, FONTCONFIG_LIBRARIES (ADVANCED)”,那么你需要安装libfontconfig。
生成本地API文档
尽管我们在api.kde.org上提供了KDE的API文档,在你的硬盘上保存一份副本往往也是有必要的,例如你想要通过KDevelop浏览这些文档或你无法上网时。
注意,生成API文档需要几个小时并占用差不多500M的磁盘空间。文档的生成通过kdelibs/doc/api下的一个脚本完成,运行这个脚本你需要doxygen。
为了构建kdelibs的API文档,请输入下列命令:
cs KDE
mkdir apidox
cd apidox
../kdelibs/doc/api/doxygen.sh ../kdelibs/
成功了!
你现在可以使用构建kdebase一样的方法构建其他svn模块,运行并测试KDE4或者编写你自己的补丁和应用程序。
关于如何在你的新的KDE4环境下开始工作,请阅读启动KDE4环境和应用。