当我安装一个简单的程序时,它经常使用make && make install并且通常甚至没有卸载目标。
如果我想升级一个程序,假设它只是无缝地重写旧程序是标准协议吗?
我如何跟踪这些程序;大多数人是否只是“一劳永逸”,如果没有给出卸载目标,我是否必须手动删除所有内容?
我知道像Gentoo或Slackware这样的基于源代码的发行版不需要*-dev程序版本。它们包括源代码以及用于在本地编译所有内容的头文件。
但是我从未*-dev在Arch Linux 中看到过包,尽管它是基于包的。我*-dev在其他发行版中遇到了很多包。
有没有办法知道内核是否是在激活某个选项(即CONFIG_PROC_EVENTS=y)的情况下编译的,而不必拉出内核源代码包并查看配置文件?
我目前正在尝试遵循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) 我知道 Linux 是可用的,并且已被移植到许多不同的平台,例如 X86、ARM、PowerPC 等。
但是,在移植方面,究竟需要什么?
我的理解是Linux是用C语言写的软件,所以把Linux原本从X86移植到ARM或者其他的时候,不就是为了特定的目标架构用编译器重新编译代码吗?
撇开不同外设的设备驱动程序不谈,在将 Linux 移植到新架构时还需要做什么。编译器不会为我们处理一切吗?
我一直在寻找轻量级 X 服务器,但没有找到。然后我发现了Wayland。我说它旨在与 X 共存,但可以独立运行。
当我尝试编译它时,它需要 Mesa,而 Mesa 需要 X。
韦兰究竟是什么?
也许有一些兼容性问题?
我的印象是,对于基于 Intel 的系统,Intel 编译器可能比 GCC 做得更好。也许已经有一个发行版尝试过这个?
我认为使用 Gentoo 可能非常简单。
当我编译自己的内核时,基本上我所做的如下:
我从 www.kernel.org 下载源代码并解压。
我将之前的内容复制.config到源代码中,并make menuconfig根据内核的新策略查看新选项并修改配置。
然后,我编译它: make -j 4
最后,我安装它:su -c 'make modules_install && make install'.
经过几次测试,我删除了旧内核(从/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) 我有时从源代码编译应用程序,我一直在使用:
./configure
make
sudo make install
Run Code Online (Sandbox Code Playgroud)
但是最近,我遇到了./autogen.sh它为我生成配置和制作脚本并执行它们。
还有哪些其他方法可以简化 C/C++/C#(mono) 编译?make 好像有点老了。有没有新的工具?如果有选择,我应该使用哪一个?
很久以前,我曾经使用 FreeBSD 及其端口系统,然后使用 Gentoo 进行移植,以便通过从源代码编译来安装应用程序。我这样做是为了直接针对我的系统。
是否有其他发行版支持这种配置?我似乎记得 Slackware 有类似的东西。
compiling ×10
linux-kernel ×3
source ×2
x86 ×2
arch-linux ×1
arm ×1
debian ×1
distros ×1
grsecurity ×1
kali-linux ×1
linux ×1
portability ×1
programming ×1
wayland ×1
x11 ×1
xorg ×1