标签: compiling

跟踪程序

当我安装一个简单的程序时,它经常使用make && make install并且通常甚至没有卸载目标。

如果我想升级一个程序,假设它只是无缝地重写旧程序是标准协议吗?

我如何跟踪这些程序;大多数人是否只是“一劳永逸”,如果没有给出卸载目标,我是否必须手动删除所有内容?

compiling software-installation package-management

34
推荐指数
4
解决办法
4708
查看次数

为什么 Arch Linux 中没有 -dev 包?

我知道像GentooSlackware这样的基于源代码的发行不需要*-dev程序版本。它们包括源代码以及用于在本地编译所有内容的头文件。

但是我从未*-devArch Linux 中看到过包,尽管它是基于包的。我*-dev在其他发行版中遇到了很多包。

compiling source arch-linux package-management

34
推荐指数
2
解决办法
2万
查看次数

当前的内核构建选项存储在哪里?

有没有办法知道内核是否是在激活某个选项(即CONFIG_PROC_EVENTS=y)的情况下编译的,而不必拉出内核源代码包并查看配置文件?

compiling linux-kernel

34
推荐指数
3
解决办法
2万
查看次数

尝试编译内核会产生认证错误

我目前正在尝试遵循Hardening Debian for the Desktop Using Grsecurity指南,以便在我的 Kali Linux 桌面上安装带有 Grsecurity 的 4.5.7 内核。

我正在逐字跟踪该指令列表,除了我尝试将 Grsecurity 的测试补丁用于 4.5.7 内核并且我正在运行 Kali Linux 而不是直接的 Debian。

但是,每次我尝试编译内核时,都会在“CC certs/system_keyring.o”行之后收到此错误:

  CC      certs/system_keyring.o
make[2]: *** No rule to make target 'debian/certs/benh@debian.org.cert.pem', needed by 'certs/x509_certificate_list'.  Stop.
Makefile:951: recipe for target 'certs' failed
make[1]: *** [certs] Error 2
make[1]: Leaving directory '/home/jc/Downloads/linux-4.5.7'
debian/ruleset/targets/common.mk:295: recipe for target 'debian/stamp/build/kernel' failed
make: *** [debian/stamp/build/kernel] Error 2
Run Code Online (Sandbox Code Playgroud)

正如我发现的那样,对于任何内核,即使我没有应用补丁或修改,我也会收到此错误,因此它与我用来编译内核的工具(显然是某种系统钥匙串)有关。有人可以告诉我如何修复我的操作系统并编译我的内核吗?

PS这是输出cat /proc/version

Linux version 4.6.0-kali1-amd64 (devel@kali.org) (gcc version …
Run Code Online (Sandbox Code Playgroud)

compiling debian grsecurity linux-kernel kali-linux

32
推荐指数
4
解决办法
4万
查看次数

将 Linux 移植到另一个平台要求

我知道 Linux 是可用的,并且已被移植到许多不同的平台,例如 X86、ARM、PowerPC 等。

但是,在移植方面,究竟需要什么?

我的理解是Linux是用C语言写的软件,所以把Linux原本从X86移植到ARM或者其他的时候,不就是为了特定的目标架构用编译器重新编译代码吗?

撇开不同外设的设备驱动程序不谈,在将 Linux 移植到新架构时还需要做什么。编译器不会为我们处理一切吗?

linux compiling arm x86 portability

28
推荐指数
2
解决办法
3232
查看次数

什么是韦兰?

我一直在寻找轻量级 X 服务器,但没有找到。然后我发现了Wayland。我说它旨在与 X 共存,但可以独立运行。

当我尝试编译它时,它需要 Mesa,而 Mesa 需要 X。

韦兰究竟什么?

compiling xorg x11 wayland

27
推荐指数
1
解决办法
2923
查看次数

是否可以使用 Intel 的编译器而不是 GCC 来编译完整的 Linux 系统?

也许有一些兼容性问题?

我的印象是,对于基于 Intel 的系统,Intel 编译器可能比 GCC 做得更好。也许已经有一个发行版尝试过这个?

我认为使用 Gentoo 可能非常简单。

compiling x86

27
推荐指数
2
解决办法
4744
查看次数

编译内核时如何减小 initrd 的大小?

当我编译自己的内核时,基本上我所做的如下:

  1. 我从 www.kernel.org 下载源代码并解压。

  2. 我将之前的内容复制.config到源代码中,并make menuconfig根据内核的新策略查看新选项并修改配置。

  3. 然后,我编译它: make -j 4

  4. 最后,我安装它:su -c 'make modules_install && make install'.

  5. 经过几次测试,我删除了旧内核(从/boot/lib/modules)并使用新内核完全运行(这最后一步救了我好几次!这是一个专业提示!)。

问题是,/boot/initrd.img-4.x.x与我的发行版中的那些相比,我总是得到一个巨大的。这里以我当前/boot/目录的内容为例:

# ls -alFh
total 243M
drwxr-xr-x  5 root root 4.0K Mar 16 21:26 ./
drwxr-xr-x 25 root root 4.0K Feb 25 09:28 ../
-rw-r--r--  1 root root 2.9M Mar  9 07:39 System.map-4.4.0-1-amd64
-rw-r--r--  1 root root 3.1M Mar 11 22:30 System.map-4.4.5
-rw-r--r--  1 root root …
Run Code Online (Sandbox Code Playgroud)

compiling linux-kernel

23
推荐指数
3
解决办法
1万
查看次数

automake 和 autoconf 是编译代码的标准方法吗?

我有时从源代码编译应用程序,我一直在使用:

./configure
make
sudo make install
Run Code Online (Sandbox Code Playgroud)

但是最近,我遇到了./autogen.sh它为我生成配置和制作脚本并执行它们。

还有哪些其他方法可以简化 C/C++/C#(mono) 编译?make 好像有点老了。有没有新的工具?如果有选择,我应该使用哪一个?

compiling programming

22
推荐指数
3
解决办法
5868
查看次数

支持从源代码编译的发行版

很久以前,我曾经使用 FreeBSD 及其端口系统,然后使用 Gentoo 进行移植,以便通过从源代码编译来安装应用程序。我这样做是为了直接针对我的系统。

是否有其他发行版支持这种配置?我似乎记得 Slackware 有类似的东西。

distros compiling source

21
推荐指数
2
解决办法
7087
查看次数