我有一台要安装 Ubuntu 的设备。我如何确定 Ubuntu 是否可以使用它?
muru's questions
当我需要在答案中链接到打包代码时,我一直发现 Launchpad 的源代码浏览器非常有用。URL 模式非常简单 ( https://code.launchpad.net/ubuntu/+source/<package>
),我通常可以在输入code
地址栏后替换最后一个单词。但是,最近,我发现找到实际的包装代码越来越不一致。
例如:
- GDM - 那里没有比 15.10(狡猾)更新的东西。但从变更日志中可以清楚地看出,从那时起,打包代码发生了变化。
- Bash - 这很有趣。该页面中有一个指向Launchpad 上的 Git 存储库的链接,您可以在那里看到更新版本的打包。同样适用于apt、 bash、 git、 grub2、....
请注意,没有列出用于 GDM 打包的 Git 存储库。其他人喜欢 GDM:集市本身,LightDM,zsh,Chromium,...
所有这些包装代码都去哪儿了?
请注意,我不想下载打包代码,我有apt-get source
这个。我不想浏览软件源代码,我会在 LP 之外寻找(当然,除非软件是在 LP 上开发的)。我想在线浏览 Ubuntu 的打包代码,并能够链接到它。对于 Debian,我通常可以在Alioth上挖掘包装。
在跟踪 Stack Clash 漏洞的USN时,我注意到已经发布的 USN 出现在稍后发布的 USN 之前。USN 33{24..27}-1 最初于 19 日发布,现在显示日期为 21 日(将网页与3324-1的邮件列表帖子进行比较)。对于 3324-1,似乎一些内核软件包已从列表中删除。但是,手动检查所有更新的 USN 很繁琐。
有什么地方可以让我看到 USN 中发生了什么变化?
旁白:他们为什么要更新 USN,而不是发布新的 USN 并在连字符后增加数字?
我听说过一个名为 Stack Clash 的新漏洞,它显然会影响多个类 Unix 系统(不仅仅是 Linux,还有 BSD、Solaris)。
- 它是什么?多操作系统错误是如何发生的?
- 如何保护我的系统?
snapcraft cleanbuild
应该让我在洁净室环境中构建快照。因此,它从最小的 LXD 映像开始并安装必要的包。但是,它似乎使用了基础archive.ubuntu.com
镜像,速度非常慢。如何缓存它下载的包?
我可以设置apt-cacher-ng
或另一个缓存代理,但仍然存在让 snap/LXD 组合使用它的问题。如果它有一个像 pbuilder 那样的内部缓存是最好的,但如果没有,那么我如何说服它使用不同的镜像或镜像代理?
在构建 Debian 软件包时,pbuilder(和类似工具)有助于在隔离环境中构建软件包,因此我系统中的奇怪设置不会导致构建问题:
pbuilder 旨在成为一个易于设置的系统,用于在洁净室环境中自动构建 Debian 软件包,以便可以验证软件包是否可以在大多数 Debian 安装上构建。洁净室环境是通过使用基本 chroot 映像实现的,因此在 chroot 中只会安装最少的软件包。
snapcraft 是否有等价物?
背景:我刚刚遇到了一些语言环境问题,干扰了为 Cassandra 构建快照。我一直在收到我懒得查看的语言环境错误,并且在构建过程中,javadoc
由于某些文件中的 Unicode 字符而失败。使用C.UTF-8
作为语言环境修复了:
export LC_ALL=C.UTF-8
snapcraft
但是,我的语言环境不应该影响构建包、snappy 或 Debian。像 pbuilder 这样的东西在这里会很有用。
的手册页man
提到了一个奇怪的选项:
-m system[,...], --systems=system[,...]
If this system has access to other operating system's manual
pages, they can be accessed using this option. To search for a
manual page from NewOS's manual page collection, use the option
-m NewOS.
The system specified can be a combination of comma delimited
operating system names. To include a search of the native
operating system's manual pages, include the system name man in
the argument string. This option will override the $SYSTEM
environment variable.
我猜它指的是这个 NewOS。但是,对包索引的搜索是newos
空的。(并不是说我对 NewOS 感兴趣——我不关心它,但我很好奇我能用这个选项做什么。)
Ubuntu 中是否有任何其他系统的联机帮助页?如果不是,这个选项应该如何使用?
我们在单独的包中提供了 POSIX 手册页,这些手册页已posix
附加到节号(1posix
等)。但是,posix
似乎不是一个系统:
$ man -wm posix ls
/usr/share/man/man1/ls.1.gz
许多 sysv init 脚本使用相应的文件/etc/default
以允许管理员对其进行配置。可以使用.override
文件修改 Upstart 作业。既然 systemd 是 Ubuntu 中的默认设置,我该如何覆盖或配置 systemd 单元?
我有很多 Upstart 会话作业,其中包括启动 Tor、开发 Web 服务器等。initctl
当我通过 GUI 登录系统时,我可以很好地使用这些命令及其缩写。然而,在 SSH 上,没有任何 Upstart 命令显示哪怕是最轻微的会话作业提示。因此:
$ cat ~/.config/upstart/tor9050.conf
description "Tor on port 9050"
start on desktop-start
stop on session-end
respawn
expect daemon
exec /usr/sbin/tor -f /home/muru/.torrc9050
$ status tor9050
status: Unknown job: tor9050
$ pgrep -fa 9050
31096 /usr/sbin/tor -f /home/muru/.torrc9050
如您所见,会话作业运行良好,如果我登录到 GUI,status tor9050
将显示预期的tor9050 start/running, process 31096
输出。
那么:如何通过 SSH 获取 Upstart 会话作业的状态并以其他方式控制它?
编译源码包时,我得到了一个错误make
,看起来像:
In file included from foo.c:28:0:
bar.h:23:18: fatal error: bar.h: No such file or directory
#include <bar.h>
^
compilation terminated.
make[x]: *** [baz] Error 1
make[x]: Leaving directory
我该如何处理?
nginx
在 Ubuntu 上是一个虚拟包,由官方存储库中的五个包之一提供(至少从 14.04 开始nginx-core
,我相信默认为 ):
$ apt-cache depends nginx | tail -n+2 | cut -d: -f 2 | sort -u
nginx-core
nginx-extras
nginx-full
nginx-light
nginx-naxsi
这些包之间有什么区别,它们的推荐用例是什么?
这个有点旧的Debian Wiki 页面extras
有, full
,light
和之间的功能比较naxsi
,但没有提到core
. 14.04 改变了多少?
secondary
据我了解,nginx
它不支持像 Apache 这样的模块的运行时启用,所以安装会nginx-extras
影响性能吗?
我想在每个组/每个用户的基础上禁用或更改 SSH 登录时显示的 MOTD。SuperUser 上的这个问题有一个答案,说明我可以Match
在sshd_config
. 但是,man sshd_config
声明:
Match
...
Only a subset of keywords may be used on the lines following a
Match keyword. Available keywords are AcceptEnv,
AllowAgentForwarding, AllowGroups, AllowTcpForwarding,
AllowUsers, AuthenticationMethods, AuthorizedKeysCommand,
AuthorizedKeysCommandUser, AuthorizedKeysFile,
AuthorizedPrincipalsFile, Banner, ChrootDirectory, DenyGroups,
DenyUsers, ForceCommand, GatewayPorts, GSSAPIAuthentication,
HostbasedAuthentication, HostbasedUsesNameFromPacketOnly,
KbdInteractiveAuthentication, KerberosAuthentication,
MaxAuthTries, MaxSessions, PasswordAuthentication,
PermitEmptyPasswords, PermitOpen, PermitRootLogin, PermitTTY,
PermitTunnel, PubkeyAuthentication, RekeyLimit,
RhostsRSAAuthentication, RSAAuthentication, X11DisplayOffset,
X11Forwarding and X11UseLocalHost.
我在该列表中看不到任何与 MOTD 相关的内容。事实上,尝试使用该建议会导致sshd
由于配置不正确而无法启动。
那么,我可以这样做吗?如果是这样,如何?从 SSH 配置或通过更改生成/打印 MOTD 的任何内容?
改变文件/etc/update-motd.d
是没有用的,因为,根据man update-motd
:
Executable scripts in /etc/update-motd.d/* are executed by pam_motd(8)
as the root user at each login, and this information is concatenated in
/var/run/motd.
(我用一个脚本对此进行了测试echo $USER
。我的root
MOTD 中有一个。)
这留下了 PAM 配置。我想可能可以pam_motd
在每个组/用户的基础上禁用,但我不确定该怎么做。最后一个选择是pam_motd
完全禁用并使用pam_exec
,但我真的希望它不会变成那样。
PolicyKit 可用于实现多种规则,包括:
- 控制关机/重启权限
- 禁用/启用休眠
- 控制网络配置权限
等等。
我想知道以人类可读的方式记录了此类可配置操作的位置(如果有的话)。如果这太宽泛,我在哪里可以找到有关作为一部分安装的软件支持的策略的信息ubuntu-desktop
?最好是在线且格式正确的,如果不是,至少不是 XML。
我知道它/usr/share/polkit-1/actions
包含描述大多数(如果不是全部)支持的操作的 XML 文件,但 XML 不是很容易阅读。
group2.fqdn
我已经用这个ForceCommand
指令设置了一个 SSH 服务器(称之为):
Match Group group1
ForceCommand ssh -t group1.fqdn
Match Group="*,!local,!group2,!root"
ForceCommand ssh -t group3.fqdn
对于sftp
不在group2
. 我该如何修改它才能sftp
正常工作?
因此:user1
ofgroup1
确实:
sftp group2.fqdn
然后他们(可能不得不输入两次密码)实际上是在sftp
做group1.fqdn
. 这可以做到吗?
上下文:
在我们的实验室中,每个组都有几台 Ubuntu 服务器,但只有一个允许外部访问,因此所有组都必须登录到一个组的服务器,然后除一个以外的所有组都被迫通过 SSH 连接到另一台服务器。我们曾经使用自定义 shell 执行此操作,但我正在尝试使用可用的服务器选项而不是 hack。自定义 shell 变体不允许 SFTP,这也不允许,但我想以某种方式让 SFTP 适用于所有这些服务器。
我已经设置了一个 PXE 引导系统,可以在其中通过网络引导 Ubuntu 实时会话。引导和安装都正常,安装可以访问网络。在实时会话中,默认 LAN 网络接口设置manual
为/etc/network/interfaces
:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual
那不是问题。问题是已安装的系统也有此配置,并且由于在中有一个条目eth0
(或接口的名称恰好是)/etc/network/interfaces
,NetworkManager 忽略它,导致用户认为他们的“LAN 在 Ubuntu 中不工作” .
Ubuntu 可以从实时会话复制很多东西到安装,例如包、存储库源、GUI 首选项。它对其中任何一个都没有这样做。但是,为什么它会保留这种网络配置呢?我如何阻止它这样做?
不自定义ubuntu live镜像,安装时是否可以选择镜像?如果没有,有哪些可用选项?我可以考虑自定义图像,或者以某种方式使用 Ubiquity 预置。
烦人的是,我正在通过网络(通过 PXE 引导)引导实时 Ubuntu,因此假定网络连接。这导致 Ubiquity 尝试从镜像中获取一些东西,即使它承认它没有“互联网连接”,因为我们在校园代理后面。因此,它会花费大量时间来尝试获取某些东西,而我们必须手动跳过该部分。我们在校园内确实有一个(官方)镜子,所以我们想使用它。
我想要一种不涉及自定义实时环境的方法,因此我可以建议将其作为使用自己的 USB 驱动器的学生的一种方法。
(例如,这里是关于我面临的通过网络实时启动的另一个问题的问题:Ubuntu Live over PXE Boot sets manual config for networking)
以下是 VM 测试的几个屏幕截图:
以下是在笔记本电脑上进行测试的几个屏幕截图:
请注意 的用法in.archive.ubuntu.com
,尽管按照@noleti 的建议,我已将其设置ftp.iitb.ac.in
为镜像: