man sudo
不让我理解其中的区别。
Mario Palumbo's questions
创建timidity.service
文件和相关符号链接以便在系统重启时自动启动服务后,我重新启动系统并输入以下输入:
sudo systemctl status timidity
输出:
× timidity.service - TiMidity++ Daemon
Loaded: loaded (/lib/systemd/system/timidity.service; disabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Mon 2024-10-07 16:34:46 CEST; 50s ago
Process: 635 ExecStart=/usr/bin/timidity -iA Os (code=exited, status=1/FAILURE)
Main PID: 635 (code=exited, status=1/FAILURE)
CPU: 31ms
ott 07 16:34:46 netcom-Vostro-15-3510 systemd[1]: Started TiMidity++ Daemon.
ott 07 16:34:47 netcom-Vostro-15-3510 timidity[635]: jack_client_new: deprecated
ott 07 16:34:47 netcom-Vostro-15-3510 timidity[635]: Cannot connect to server socket err = No such file or directory
ott 07 16:34:47 netcom-Vostro-15-3510 timidity[635]: Cannot connect to server request channel
ott 07 16:34:47 netcom-Vostro-15-3510 timidity[635]: jack server is not running or cannot be started
ott 07 16:34:47 netcom-Vostro-15-3510 timidity[635]: JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
ott 07 16:34:47 netcom-Vostro-15-3510 timidity[635]: JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
ott 07 16:34:47 netcom-Vostro-15-3510 timidity[635]: Couldn't open output device
ott 07 16:34:46 netcom-Vostro-15-3510 systemd[1]: timidity.service: Main process exited, code=exited, status=1/FAILURE
ott 07 16:34:46 netcom-Vostro-15-3510 systemd[1]: timidity.service: Failed with result 'exit-code'.
我的用户名与该群组相关联audio
。
符号链接:
/usr/lib/systemd/system/multi-user.target.wants/timidity.service
服务:
/usr/lib/systemd/system/timidity.service
包含:
[Unit]
Description=TiMidity++ Daemon
After=sound.target
Requires=sound.target
[Service]
ExecStart=/usr/bin/timidity -iA Os
Type=simple
[Install]
WantedBy=multi-user.target
我还尝试将“timidity.service”文件更改为以下内容:
[Unit]
Description=TiMidity++ Daemon
After=pulseaudio.service
Requires=pulseaudio.service
[Service]
ExecStart=/usr/bin/timidity -iA Os
Type=simple
[Install]
WantedBy=multi-user.target
但再次重启系统后,错误仍然相同。
尝试在系统已启动的情况下从终端手动启动服务,服务正确启动。
我做错什么了?
至于:
$ dpkg -f <deb-file> <field>
也有同样的事情:
$ apt-cache show <package> <field>
返回给我一个包的字段?
例如,假设我已经安装了 Discord 并将其 .deb 存档放在当前目录中,我运行以下命令:
$ dpkg -f ./discord.deb Version
$ apt-cache show discord Version
我想要的输出:
0.0.27
0.0.27
实际输出:
0.0.27
... # discord package unwanted long output
N: Unable to locate package Version
我想要一个利用 apt-cache 或 dpkg 命令本身的解决方案。
如果没有这样的解决方案,那么我接受通常的解析器。
我该如何解决?
编辑1:
我只想显示软件包的已安装版本。
在文件夹中/etc/apt/sources.list.d
我有文件:
谷歌-chrome-repo.list:
deb [arch=amd64 signed-by=/usr/share/keyrings/google-chrome-keyring.gpg] https://dl.google.com/linux/chrome/deb/ stable main
deb-src [arch=amd64 signed-by=/usr/share/keyrings/google-chrome-keyring.gpg] https://dl.google.com/linux/chrome/deb/ stable main
在文件夹中/usr/share/keyrings
我有一个名为google-chrome-keyring.gpg
如果我安装谷歌浏览器:
sudo apt-get install google-chrome-stable
那个烦人的第二个文件是用/etc/apt/sources.list.d
名称创建的google-chrome.list
,内容为:
### THIS FILE IS AUTOMATICALLY CONFIGURED ###
# You may comment out this entry, but any other modifications may be lost.
deb [arch=amd64] https://dl.google.com/linux/chrome/deb/ stable main
/etc/apt/trusted.gpg.d
以及名为的文件夹中的文件google-chrome.gpg
如果我不删除烦人的自动生成的文件/etc/apt/sources.list.d/google-chrome.list
,则命令:
sudo apt-get purge google-chrome-stable
会报如下错误:
E: Conflicting values set for option Signed-By regarding source https://dl.google.com/linux/chrome/deb/ stable: /usr/share/keyrings/google-chrome-keyring.gpg !=
E: The list of sources could not be read.
相反,我的目标是能够根据需要多次执行apt-get install
google apt-get purge
-chrome 操作,而不必每次都先删除自动生成的文件。
我怎样才能得到这个?有没有办法让apt-get
忽略该文件?
其他主题中提出的解决方案delete that file
并没有真正发挥作用。
我希望能够apt-get
直接使用上面写的而不是脚本或替代函数。
如果有一些Dpkg::Options::=
类似的东西那就太好了:
Of multiple coincident files in "sources.list.d", only consider the oldest one (the one created first).
这个示例脚本:
cat <<- EOF | bash -c
command1 args
command2 args
command3 args
command4 args
command5 args
EOF
返回:bash: -c: option requires an argument
如何将 bash -c 与 here-document 一起使用?
我想全部获取它们,而我无法从man apt-get
andman apt.conf
命令中获取它们,甚至不在线查找它们。
例如,在手册中没有APT::Get::Clean
并在命令中放置了一个虚假选项apt-get
,然后:
sudo apt-get -o APT::Get::Swearword=true dist-upgrade
该命令正确执行,没有出现错误,退出代码等于0,因此即使尝试也无法验证选项是否存在。如何获取现有选项的完整列表?
VMware® Workstation 16 Pro 16.2.4 build-20089737
主机:Ubuntu 22.04 LTS(从 20.04 LTS 升级)。
虚拟机:任意。
Windows-Logo 键,ctrl+alr+del 键,stamp-r-sist 键(用于截图)和我不知道其他的没有发送到虚拟机,即使它有焦点并且已满屏幕。
主机对按下这些键做出反应,但对 VM 没有反应。
将主机系统从 Ubuntu 20.04 LTS 升级到 Ubuntu 22.04 LTS 后出现此问题。
为什么?我该如何解决?
我尝试从 0 重新安装 VMware,但没有帮助。
参考链接:
我想将顶部栏中的系统图标分开,即wifi,蓝牙,声音和电池,以获得4个不同的可点击图标。
这种类型的,我还没有找到兼容 Gnome 42 的扩展。
有兼容 Gnome 42 的扩展吗?
我在特定目录中有这 4 个文件夹:
example.10 example.42 example.7 example.9
从 shell 终端,我想要这个大括号扩展
echo example.{1..9}*
只返回一个结果(无论是哪一个)而不是全部。
我如何通过大括号扩展来获得这个?
例如我有一个目录:
/A/B/C/D/E/F/G.txt
不知道先验/E/F/G.txt
,我需要隔离那部分。为了便于举例:
echo '/A/B/C/D/E/F/G.txt' | grep -o '/A/B/C/D'
显示:
/A/B/C/D
但我想要:
/E/F/G.txt
和:
echo '/A/B/C/D/E/F/G.txt' | grep -o -v '/A/B/C/D'
我没有得到想要的输出(输出根本不存在)。
如何使用 获得所需的输出grep
,即不显示搜索词中的行部分grep
?
例如,如果我有一个现有的设备变量/dev/sda
,我想验证它不是分区的名称,而是整个磁盘的名称。
我试过这个:
[[ $(df --output=source "$var" 2> /dev/null | tail -n 1) = 'udev' ]]
但是无论var='/dev/sda'
设备是否已连接,或者var='/dev/sda1'
分区未安装,这都会返回 true。
因此,即使您将先前的条件与以下条件相结合:
if grep -sq "^$var " /proc/mounts; then ...
说它是磁盘名称而不是磁盘分区是不够的。
如何检查 astring
是否是现有设备名称而不是分区名称?
我想创建具有指定大小的分区 2,而分区 1 占用磁盘的其余部分:
echo -en 'g\nw' | fdisk "$2" #create gpt table
echo -en ',1331200\n,,U' | sudo sfdisk "/dev/sda" -W always
最后一个命令创建了 650MB 的左侧分区,右侧的分区占据了磁盘的其余部分,但正如我已经指定的,这不是我需要的。要创建 650MB 的右侧分区和占用磁盘其余部分的左侧分区,我想我会这样做:
echo -en ',-1331200\n,,U' | sudo sfdisk "/dev/sda" -W always
认为负值从右边开始,但-
符号被完全忽略,该命令与没有符号的命令具有相同的效果-
。
如何使用从右侧开始创建分区sfdisk
?
我试图创建一个安装 Ubuntu 20.04 LTS Desktop 64 位的 UEFI 笔式驱动器。
该exFAT
分区gpt2
包含整个 Ubuntu 20.04 LTS 系统映像。
该FAT32
分区gpt1
包含以下文件:
.
├── boot
│ └── grub
│ └── x86_64-efi
│ └── exfat.mod
└── EFI
└── BOOT
├── BOOTX64.EFI
├── grub.cfg
├── grubx64.efi
└── mmx64.efi
5 directories, 5 files
其中grub.cfg
文件包含以下行:
insmod exfat
search --no-floppy --set=root --fs-uuid 7026-67D5
configfile /boot/grub/grub.cfg
将Secure Boot
方法从更改Deployed Mode
为后,从分区的文件中正确调用分区Audit Mode
的默认grub.cfg
文件。
实际上,出现了正确的安装选项。
选择选项后,无休止地循环并按下键我意识到原因是一个未指定的错误:,它重复了很多次。
此错误的原因可能是什么?exfat
grub.cfg
FAT32
Ubuntu
ESC
stdin: invalid argument
更新 1:即使完全禁用安全启动,也会出现相同的错误。
更新2:等待一段时间,出现以下消息:
Unable to find a medium container a live file system
Attempt interactive netboot from a URL?
yes no (default yes): _
更新3:
我发现如果不是在exFAT中使用分区,而是在NTFS中使用它,问题就不会出现。由此我推断,尽管insmod exfat
命令传递到具有该文件系统的分区,但 initrd.lz 文件不支持 exfat 文件系统。事实上,我还进行了另一个测试,几乎完全确认了这件事:
insmod exfat
search --no-floppy --set=root --fs-uuid 7026-67D5
chainloader /efi/boot/bootx64.efi
boot
我收到错误消息:
Failed to find fs: Unsupported
Failed to load image \efi\boot\grubx64.efi: Unsupported
start_image() returned Unsupported
如果 exfat 分区中有 Windows 映像而不是 Ubuntu,则引导加载程序可以正确启动。
有没有办法在 bootx64.efi 和 initrd.lz 文件中实现 exfat 支持?
我需要使用udisksctl
. 我尝试了网上已经看到
的经典方法:/dev/sda?*
udisksctl mount -b /dev/sda?*
或者
udisksctl unmount -b /dev/sda?*
/dev/sda?*
在我的情况下相当于/dev/sda1 /dev/sda2
但udisksctl
只安装或卸载列出的第一个分区/dev/sda1
。
如何让它一次挂载或卸载所有分区?
我已经在 64 位 Ubuntu 20.04 Server 上为 Raspberry Pi 4 安装了 lightdm + cinnamon。
系统托盘网络图标显示我已与 Internet 断开连接,而实际上我已连接。互联网提供的解决方案都没有解决我的问题。这个问题可能是由于缺少一些包,但我不知道它是什么。我运行了以下命令:
sudo apt update
sudo apt dist-upgrade
sudo reboot
sudo apt install --install-recommends lightdm
sudo apt install --install-recommends cinnamon-desktop-environment
sudo reboot
肉桂有效,但现在我向您展示网络图标它通过图像向我展示的内容:
compgen -c | sort -b | uniq | less
还显示函数和关键字(幸运的是没有别名),我想要所有不是关键字、函数或别名的东西。简而言之,只有命令。
如果命令名与函数名、关键字名或别名匹配;命令名称不能省略。
我已将肉桂登录徽章图标更改为:
/usr/share/unity-greeter/custom_cinnamon_badge.png
我想以相同的方式更改“ubuntu on wayland”徽章(为空),例如使用类似于以下内容的文件:
/usr/share/unity-greeter/custom_ubuntu_on_wayland_badge.png
或者:
/usr/share/unity-greeter/ubuntu_on_wayland_badge.png
换句话说:我应该如何调用“wayland”图标以确保看到它?
Ubuntu 20.10 Groovy 大猩猩。
如果我尝试执行此 AIO 命令:
sudo apt -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" install --install-recommends build-essential checkinstall ubuntu-restricted-extras libglib2.0-dev libgtk2.0-dev rar zip unzip p7zip p7zip-full gparted hardinfo lprng gimp geany thonny thunderbird birdtray skypeforlinux putty screen net-tools winehq-stable expect ipscan google-chrome-stable teamviewer
适当的回报:
The following packages have unmet dependencies:
winehq-stable : Depends: wine-stable (= 6.0.0~groovy-1)
E: Unable to correct problems, you have held broken packages.
如果我尝试仅安装该软件包:
sudo apt -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" install --install-recommends winehq-stable
错误不会发生。
为什么?
如何使用单个命令方便地安装所有软件包而不会出现 wineHQ 错误?
更新:
这是 /etc/apt/sources.list:
# deb cdrom:[Ubuntu 20.10 _Groovy Gorilla_ - Release amd64 (20201022)] groovy main restricted
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://archive.ubuntu.com/ubuntu groovy main restricted
deb-src http://archive.ubuntu.com/ubuntu groovy main restricted
## Major bug fix updates produced after the final release of the
## distribution.
deb http://archive.ubuntu.com/ubuntu groovy-updates main restricted
deb-src http://archive.ubuntu.com/ubuntu groovy-updates main restricted
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://archive.ubuntu.com/ubuntu groovy universe
deb-src http://archive.ubuntu.com/ubuntu groovy universe
deb http://archive.ubuntu.com/ubuntu groovy-updates universe
deb-src http://archive.ubuntu.com/ubuntu groovy-updates universe
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://archive.ubuntu.com/ubuntu groovy multiverse
deb-src http://archive.ubuntu.com/ubuntu groovy multiverse
deb http://archive.ubuntu.com/ubuntu groovy-updates multiverse
deb-src http://archive.ubuntu.com/ubuntu groovy-updates multiverse
## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://archive.ubuntu.com/ubuntu groovy-backports main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu groovy-backports main restricted universe multiverse
## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
deb http://archive.canonical.com/ubuntu groovy partner
deb-src http://archive.canonical.com/ubuntu groovy partner
deb http://security.ubuntu.com/ubuntu groovy-security main restricted
deb-src http://security.ubuntu.com/ubuntu groovy-security main restricted
deb http://security.ubuntu.com/ubuntu groovy-security universe
deb-src http://security.ubuntu.com/ubuntu groovy-security universe
deb http://security.ubuntu.com/ubuntu groovy-security multiverse
deb-src http://security.ubuntu.com/ubuntu groovy-security multiverse
# This system was installed using small removable media
# (e.g. netinst, live or single CD). The matching "deb cdrom"
# entries were disabled at the end of the installation process.
# For information about how to configure apt package sources,
# see the sources.list(5) manual.
这是 /etc/apt/sources.list.d/angry-ip-scanner.list
deb [trusted=yes] http://ppa.launchpad.net/upubuntu-com/network/ubuntu wily main
deb-src [trusted=yes] http://ppa.launchpad.net/upubuntu-com/network/ubuntu wily main
这是 /etc/apt/sources.list.d/google-chrome.list
deb [signed-by=/usr/share/keyrings/google-archive-keyring.gpg] http://dl.google.com/linux/chrome/deb stable main
deb-src [signed-by=/usr/share/keyrings/google-archive-keyring.gpg] http://dl.google.com/linux/chrome/deb stable main
这是 /etc/apt/sources.list.d/skype-stable.list
deb [signed-by=/usr/share/keyrings/skypeforlinux-archive-keyring.gpg] https://repo.skype.com/deb stable main
deb-src [signed-by=/usr/share/keyrings/skypeforlinux-archive-keyring.gpg] https://repo.skype.com/deb stable main
这是 /etc/apt/sources.list.d/teamviewer.list
deb [signed-by=/usr/share/keyrings/teamviewer-archive-keyring.gpg] http://linux.teamviewer.com/deb stable main
deb-src [signed-by=/usr/share/keyrings/teamviewer-archive-keyring.gpg] http://linux.teamviewer.com/deb stable main
这是 /etc/apt/sources.list.d/winehq.list
deb [signed-by=/usr/share/keyrings/winehq-archive-keyring.gpg] https://dl.winehq.org/wine-builds/ubuntu/ groovy main
deb-src [signed-by=/usr/share/keyrings/winehq-archive-keyring.gpg] https://dl.winehq.org/wine-builds/ubuntu/ groovy main
使用此命令并在登录桌面后选择:
sudo apt install cinnamon-desktop-environment
登录后我可以使用 Cinnamon 界面。但是在终止会话或重新启动计算机后,登录前的屏幕始终保持 gnome 界面的屏幕。
如何在登录之前设置 Cinnamon?