在/etc/apt/sources.list.d/中具有大量不同源存储库的旧版 Debian 计算机上,我想为每个已安装的软件包找到它是从哪个存储库安装的。我想编写apt-cachepolicy的输出脚本,但在此之前我必须更清楚地理解这个输出。
我发现了一些我不知道如何解释的事情:
# apt-cache policy apache2
apache2:
Installed: 2.2.22-13+deb7u8
Candidate: 2.2.22-13+deb7u12
Version table:
2.2.22-13+deb7u12 0
500 http://security.debian.org/ wheezy/updates/main amd64 Packages
*** 2.2.22-13+deb7u8 0
100 /var/lib/dpkg/status
2.2.22-13+deb7u6 0
500 http://cloudfront.debian.net/debian/ wheezy/main amd64 Packages
Run Code Online (Sandbox Code Playgroud)
这是否意味着当前安装的版本(带有 *** 的版本)已从/var/lib/dpkg/status安装?它甚至意味着要从/var/lib/dpkg/status安装某些东西吗?
在我可以在类似主题中找到的示例中,如果标有 *** 的部分有一行/var/lib/dpkg/status优先级为 100,它还有另一行带有 http 存储库和优先级 500,我想这意味着该软件包是从优先级 500 的存储库安装的。
但就我而言,apache2 软件包是从哪个存储库安装的?由于我们可以看到提出了一个新版本(repo security.debian.org),这是否意味着该软件包是从此存储库安装的,但由于有可用的更新,因此该行已从 *** 部分中删除,并且这就是为什么只有一行/var/lib/dpkg/status?
或者也许这一行带有/var/lib/dpkg/status意味着它是从已从sources.list.d 文件中删除的存储库安装的?
编辑(针对本文的第一条评论):
# apt-cache showpkg apache2
Package: apache2
Versions:
2.2.22-13+deb7u12 (/var/lib/apt/lists/security.debian.org_dists_wheezy_updates_main_binary-amd64_Packages)
Description Language:
File: /var/lib/apt/lists/cloudfront.debian.net_debian_dists_wheezy_main_binary-amd64_Packages …Run Code Online (Sandbox Code Playgroud) 我已经在 lightdm.conf 中设置了这 2 个设置(在 Seat:* 部分下),但自动登录不起作用。它仍然要求我输入用户名和密码
autologin-user=user
autologin-user-timeout=0
Run Code Online (Sandbox Code Playgroud)
我还尝试过这个设置,但仍然不起作用
user-session=default
Run Code Online (Sandbox Code Playgroud)
此外,“登录时不询问密码”复选框被禁用且未选中。
我正在研究可重复的构建,并希望最终得到一个脚本来设置包含我的构建环境的恒定虚拟机映像。现在,我将把时间戳和其他差异来源的问题放在一边,因此“恒定”是指可重现的环境。我知道 Debian ReproducibleBuilds的努力,它对软件包版本提出了要求,以保证相同的构建。我想要类似的东西,但在系统级别。
我从 Alpine 开始,它让我可以非常轻松地创建基于特定版本的虚拟机。
我如何对 Debian 做同样的事情,它提供了例如延伸版本 9.0 到 9.4?
到目前为止,我能想到的最好的办法如下:我查看了发布变更日志,然后使用最接近的快照作为debootstrap的包源。
$ wget -q -O- http://ftp.debian.org/debian/dists/stretch/ChangeLog | grep "Debian.*released"
Sat, 10 Mar 2018 - Debian 9.4 released
Sat, 09 Dec 2017 - Debian 9.3 released
Sat, 07 Oct 2017 - Debian 9.2 released
Sat, 22 Jul 2017 - Debian 9.1 released
Sat, 17 Jun 2017 - Debian 9.0 released
$ …Run Code Online (Sandbox Code Playgroud) 我有两台安装了 Devuan 的笔记本电脑。关闭时,当 cryptsetup 尝试关闭加密分区时,它会挂起大约一分钟。
\n\n留言:
\n\nStopping remaining crypto disks...sda5_crypt (busy)... failed.\nStopping early crypto disks...sda5_crypt (busy)... failed.\nRun Code Online (Sandbox Code Playgroud)\n\n分区:
\n\nsda5\n\xe2\x94\x94\xe2\x94\x80sda5_crypt\n \xe2\x94\x9c\xe2\x94\x80vg-root\n \xe2\x94\x9c\xe2\x94\x80vg-var\n \xe2\x94\x9c\xe2\x94\x80vg-swap_1\n \xe2\x94\x9c\xe2\x94\x80vg-tmp\n \xe2\x94\x9c\xe2\x94\x80vg-home\nRun Code Online (Sandbox Code Playgroud)\n\n修改脚本 ( /lib/cryptsetup/cryptodisks.functions) 后,我知道 LVM 卷仍然处于活动状态,并且我认为它会阻止 cryptsetup 关闭分区。如果我dmsetup remove_all在 cryptsetup 关闭分区之前添加,大多数 LVM 卷都会被删除,但 vg-root 仍然存在,因此它会再次失败。
我有一个运行 Linux 的桌面工作站(Debian Sid,如果相关的话)。它没有 GPS 或其他特定方式来获取自己的地理位置(Gnome 地图正确地将其定位在意大利罗马,误差约为 11.5 Mi!)。
有什么方法可以告诉它它的放置位置吗?
我见过这个问题,但它只涉及基于浏览器的应用程序。我想覆盖默认定位(即:Gnome Maps 用于获取其粗略数据的同一东西)。
在 Debian 10 VM 中,我首先安装了 OpenJDK 11,一切正常。然后我根据极客计算中发布的说明安装了 Oracle JDK 13 ,这意味着wget-ting .deb 文件并使用dpkg -i.
我没有任何错误,但运行时update-alternatives --config java我得到这个答案:
There is only one alternative in link group java (providing /usr/bin/java): /usr/lib/jvm/java-11-openjdk-amd64/bin/java
Run Code Online (Sandbox Code Playgroud)
为什么?如何从一种 JDK 切换到另一种?
我希望在我拥有的 Debian 10 机器上忽略笔记本电脑盖子的关闭。该笔记本电脑是 2017 款 Macbook Air。
许多在线指南都说 和HandleLidSwitch、HandleLidSwitchExternalPower和HandleLidSwitchDocked必须设置为忽略。
这些行直接来自 /etc/systemd/logind.conf 以表明我已经这样做了:
[Login]
#NAutoVTs=6
#ReserveVT=6
#KillUserProcesses=no
#KillOnlyUsers=
#KillExcludeUsers=root
#InhibitDelayMaxSec=5
#HandlePowerKey=poweroff
#HandleSuspendKey=suspend
#HandleHibernateKey=hibernate
HndleLidSwitch=ignore
HandleLidSwitchExternalPower=ignore
HandleLidSwitchDocked=ignore
#PowerKeyIgnoreInhibited=no
#SuspendKeyIgnoreInhibited=no
#HibernateKeyIgnoreInhibited=no
LidSwitchIgnoreInhibited=no
#HoldoffTimeoutSec=30s
#IdleAction=ignore
#IdleActionSec=30min
#RuntimeDirectorySize=10%
#RemoveIPC=yes
#InhibitorsMax=8192
#SessionsMax=8192
Run Code Online (Sandbox Code Playgroud)
然后我systemctl restart systemd-logind以 root 身份运行,但问题仍然存在。
即使重新启动计算机后我也会遇到同样的问题。
有趣的是,该文件似乎没有被正确解析,如该命令的输出所示:
nick@debserver:~$ busctl get-property org.freedesktop.login1 /org/freedesktop/login1 org.freedesktop.login1.Manager HandleLidSwitch
s "suspend"
Run Code Online (Sandbox Code Playgroud)
我不确定我需要做什么。
我想在 Docker 容器中安装fbprophet 。我的 Dockerfile 如下所示:
FROM python:3.7
RUN pip install --upgrade pip
RUN pip install fbprophet
Run Code Online (Sandbox Code Playgroud)
使用以下堆栈跟踪在“pip install fbprophet”步骤中构建图像错误:
Running setup.py install for fbprophet ... error
ERROR: Command errored out with exit status 1:
command: /usr/local/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-7ei5jssc/fbprophet_9a3a667ec353402389a02258feccfe51/setup.py'"'"'; __file__='"'"'/tmp/pip-install-7ei5jssc/fbprophet_9a3a667ec353402389a02258feccfe51/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-741oj2zp/install-record.txt --single-version-externally-managed --compile --install-headers /usr/local/include/python3.7m/fbprophet
cwd: /tmp/pip-install-7ei5jssc/fbprophet_9a3a667ec353402389a02258feccfe51/
Complete output (10 lines):
running install
running build
running build_py
creating build
creating build/lib
creating build/lib/fbprophet
creating …Run Code Online (Sandbox Code Playgroud) $ curl -s https://goolge.ca | wc
0 0 0
$ curl -vs https://goolge.ca
. . .
* successfully set certificate verify locations:
* CAfile: none
CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (OUT), TLS alert, bad certificate (554):
* SSL certificate problem: EE certificate key too weak
* Closing connection 0
$ lsb_release -a
No LSB modules are available.
Distributor …Run Code Online (Sandbox Code Playgroud) 我一直在使用 Windows Subsystem for Linux (WSL),当我在 WSL 的主目录中创建一个文件时,它实际上存在于文件资源管理器中的什么位置,而且,因为我的 C: 驱动器位于 /mnt/c/ 中,这是否意味着Linux 是在单独的分区还是挂载上?
当我在 WSL 的根目录中运行列表目录时:
bin boot dev etc home init lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
Run Code Online (Sandbox Code Playgroud)
普通文件浏览器中的var或bin文件夹存在于哪里?home
debian ×10
linux ×4
apt-cache ×1
auto-login ×1
build ×1
certificate ×1
debootstrap ×1
devuan ×1
geolocation ×1
https ×1
installation ×1
java ×1
lvm ×1
lxde ×1
openjdk ×1
repository ×1
ssl ×1
sysvinit ×1
windows ×1