我今天刚刚将我的 Ubuntu 从 20 升级到 22。重新启动后,我发现我的收藏夹栏中有一个新图标。
当我用右键单击它时,Mount
会弹出一个:
在屏幕的顶部,一个圆圈在旋转:
这是什么?是不是因为我在我的 PC 上安装了带有 Ubuntu 操作系统的重复操作系统(win)?我刚刚尝试输入sudo
win的密码和我的登录帐户密码,但是当我点击的时候Unlock
,什么也没有发生。图标总是在那里...
今天我尝试用我多年熟悉的方式进入Single User模式:进入grub的编辑模式,single
在行尾添加kernel
并输入F10
.
我以为我可以在不输入密码的情况下进入单用户模式,但令我惊讶的是,它要求我输入 root 密码。我不知道为什么,因为我总是用这种方式来拯救我的linux系统,例如,如果我丢失了root密码,我可以用这种方式来制作一个新的root密码。
但现在情况变了……
所以Ubuntu已经屏蔽了这种无密码的单用户模式?
我正在学习如何使用 systemd 通知。我认为这是一种机制,它允许一个进程向另一个进程发送通知。
因此,我尝试使用命令发出通知systemd-notify --ready --status="hello"
。然后我得到一个错误:No status data could be sent: $NOTIFY_SOCKET was not set
。似乎它需要一个监听器,就像套接字一样。但我不知道如何让听众接收这个通知。
另外,我知道 systemd 的服务有一些不同的类型,其中之一是notify
. 医生说,Type=notify: identical to Type=simple, but with the stipulation that the daemon will send a signal to systemd when it is ready.
。所以看起来通知类型的服务也可以发送通知,但我也不知道如何使用它。
我有两台 Ubuntu 16.04.3 系统 A 和 B 的机器。
首先,我apt update && apt-get install XXX YYY ZZZ
在机器 A 上执行,我可以在/var/cache/apt/archives/
. 然后我将所有这些 deb 包从 A 复制到 B 并在机器 B 上执行apt update && apt install ./debsFromA/*.deb
以在本地安装这些 deb 包。
但是,我发现机器B会从ubuntu官方网站(http://us.archive.ubuntu.com/ubuntu/等)重新下载所有这些deb包。
所以我提供了所有的deb包,为什么还要重新下载呢?
我的服务器因为庞大的系统日志文件而转储。我听说我们可以通过size 100m
在文件/etc/logrotate.d/rsyslog
中添加这样一行来限制系统日志的大小。
现在我的/etc/logrotate.d/rsyslog
变成如下:
/var/log/syslog
{
rotate 7
daily
size 100m
missingok
notifempty
delaycompress
compress
postrotate
invoke-rc.d rsyslog rotate > /dev/null
endscript
}
我的问题是:如何size 100m
使用rotate 7
?
没有size 100m
,rotate 7
和daily
一起意味着系统日志将每天轮换,并将保留 7 天的积压工作。现在如果我添加size 100m
并且一些每日日志大于100m
,它会立即轮换吗?如果是这样,是否意味着如果某些每日日志增长太多(超过700mb
),我可能会在一天内获得 7 个积压?
我需要列出 deb 文件,这样我就可以在没有 Internet 的情况下安装东西。
我们知道,当我们执行时apt-get install XXX
,我们可以在/var/cache/apt/archives/
. 有了这些 deb 文件,我们就可以apt install ./*.deb
在本地执行安装(无需 Internet)。
所以这就是我所做的:
sudo apt-get install pkg1
sudo apt-get install pkg2
...
...
sudo cp /var/cache/apt/archives/*.deb ~/deb/
现在,我在~/deb
.
然后,我复制~/deb
到另一个新的 Ubuntu 16.04.3 并执行apt install ./deb/*.deb
.
令我惊讶的是,我发现了一些奇怪的错误:
1)一些debs冲突。例如,当我执行时apt install ./deb/*.deb
,它说a.deb
和b.deb
冲突,我必须删除其中一个才能完成安装。
2)执行后apt install ./deb/*.deb
,系统的ssh坏了,我必须执行apt update && apt install openssh-server openssh-client
修复它。
我不明白为什么来自官方来源的 deb 文件无法在本地正确安装。
我有两个 Ubuntu 系统,它们完全一样。
我在一个系统上执行了几个apt-get install XXX
,我可以在/var/cache/apt/archives/
. 然后我将这些 deb 文件复制到另一个系统/home/me/archives/
并执行apt-get install ./*.deb
.
我认为它应该在本地安装 deb 包,但令我惊讶的是,它仍然重新下载所有 deb 文件。我不知道为什么。
奇怪的地方有三点:
当我执行apt-get install ./*.deb
时,会出现很多消息:
Note, selecting 'python-rospkg' instead of './python-rospkg_1.1.4-100_all.deb'
Note, selecting 'python-serial' instead of './python-serial_3.0.1-1_all.deb'
Note, selecting 'python-service-identity' instead of './python-service-identity_16.0.0-2_all.deb'
Note, selecting 'python-setuptools' instead of './python-setuptools_20.7.0-1_all.deb'
Note, selecting 'python-sip-dev' instead of './python-sip-dev_4.17+dfsg-1build1_amd64.deb'
Note, selecting 'python-sip' instead of './python-sip_4.17+dfsg-1build1_amd64.deb'
Note, selecting 'python-six' instead of './python-six_1.10.0-3_all.deb'
我尝试安装其中一个 deb 包,例如 ,apt-get install libwebp-dev_0.4.4-1_amd64.deb
但我总是收到错误:
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package libwebp-dev_0.4.4-1_amd64.deb
E: Couldn't find any package by glob 'libwebp-dev_0.4.4-1_amd64.deb'
E: Couldn't find any package by regex 'libwebp-dev_0.4.4-1_amd64.deb'
我也试过用dpkg -i *.deb
安装这些本地的deb包,但是出现了丢失某些包的错误,然后我执行apt install -f
从网上获取丢失的deb包,但是丢失的包来自互联网和原来的本地包完全一样...
总之,我的系统无法按预期安装本地 deb 包。
我正在尝试编译一个 C++ 项目并得到一个错误:xxx.so no such file or directory
. 在这种情况下,通常我执行命令apt-cache search xxx
,我通常可以找到一个类似的包名xxx-dev
,所以我简单地执行apt install xxx-dev
它就可以了。
但实际上我不知道具体apt install xxx-dev
会做什么。当我们执行时apt install xxx-dev
,我们可以获得一些关于将要安装什么的信息,等等,但我想知道更多。
如果我执行apt install xxx-dev
,它会安装比我需要的更多的东西吗?比如,一开始的错误告诉我xxx.so
缺少,但是当我执行时apt install xxx-dev
,我通常可以看到会安装很多包。所有这些都是必要的吗?有没有办法准确检查apt install xxx-dev
将要做什么或检查 deb 包包含的内容?
出于某种原因,我必须在 Ubuntu 17.10 上安装一些 Ubuntu 16.04 的软件包。我试过了,apt update && apt install pkgname
但总是有一些依赖问题。
我正在尝试的是使用命令获取某些包的来源apt source pkgname
。
我发现我得到了三件事:
pkgname.dsc
pkgname.orig.tar.gz
pkgname.debian.tar.xz
该.dsc
文件似乎包含一些信息pkgname
,该.orig.tar.gz
文件是源代码,但我不知道该.debian.tar.xz
文件是什么。
例如,要安装libpcl-dev
,我做了以下事情:
apt source libpcl-dev && tar xzvf pcl.orig.tar.gz && cd pcl && mkdir build && cd build && cmake .. && make install && make
.
它似乎可以工作,但我无法得到我需要的东西,这意味着没有名为libpcl-dev
./usr
我刚刚发现我的 Ubuntu 16.04 中有两个大文件:
/run/log/journal/c840a48...(a very long name)...debfed5d/system.journal
/var/log/installer/cdebconf/templates.dat
我的目标是让 Ubuntu 的文件系统尽可能小,所以我在考虑是否可以删除这两个文件,因为它们都足够大(超过 10 MB)。
看起来它们是两个日志文件,我可以简单地删除它们吗?如果它们来自某些进程,是否可以禁用这些进程的日志系统以防止生成这两个文件?
我需要测量一些安装的确切尺寸。
例如,我需要知道apt install vim
.
我的想法是先安装一个干净的 Ubuntu,然后测量其文件系统的大小(x KB);之后,我apt install pkgname
再次测量其文件系统的大小(y KB)。
所以磁盘使用量apt install pkgname
= y - x
KB。
但是,有一些虚拟目录,例如/proc
,所以我不知道如何测量文件系统的确切大小。另外,当我们这样做时,将下载apt install pkgname
一个文件,所以我不知道如何准确测量.deb
/var/cache/apt/archives/
pkgname
我正在从源代码安装 ROS 并收到有关 PyQt5 的错误。
[ 88%] Running SIP generator for qt_gui_cpp_sip Python bindings...
sip: Deprecation warning: qt_gui_cpp.sip:1: %Module version number should be specified using the 'version' argument
sip: Unable to find file "QtCore/QtCoremod.sip"
Traceback (most recent call last):
File "/home/zyh/ros_catkin_ws/install_isolated/share/python_qt_binding/cmake/sip_configure.py", line 80, in <module>
subprocess.check_call(cmd)
File "/usr/lib/python2.7/subprocess.py", line 186, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['/usr/bin/sip', '-c', '/home/zyh/ros_catkin_ws/build_isolated/qt_gui_cpp/sip/qt_gui_cpp_sip', '-b', '/home/zyh/ros_catkin_ws/build_isolated/qt_gui_cpp/sip/qt_gui_cpp_sip/pyqtscripting.sbf', '-I', '/usr/share/sip/PyQt5', '-w', '-x', 'VendorID', '-t', 'WS_X11', '-t', 'Qt_5_9_1', '-x', 'Py_v3', 'qt_gui_cpp.sip']' returned non-zero exit status 1
src/qt_gui_cpp_sip/CMakeFiles/libqt_gui_cpp_sip.dir/build.make:89: recipe for target 'sip/qt_gui_cpp_sip/Makefile' failed
make[2]: *** [sip/qt_gui_cpp_sip/Makefile] Error 1
如我们所见,错误来自subprocess.CalledProcessError: ...
.
我发现 '/usr/share/sip/PyQt5' 不存在。
我已阅读如何在 Ubuntu 14.10 中为 Python 3 安装 PyQt?但这无济于事。我可以pip install pyqt4
而且我可以PyQt4
在/usr/share/sip/
.
好像是ROS在找PyQt5
,/usr/share/sip/
怎么安装PyQt5
?
众所周知,要配置网络,我们可以编辑/etc/network/interfaces
和执行/etc/init.d/networking restart
.
今天我尝试使用 Ubuntu 17.10,发现网络配置发生了变化。现在我们应该编辑/etc/netplan01-netcfg.yaml
并执行netplan apply
.
好的,这可能是一个不好的问题,但我真的很想知道 Ubuntu 为何会做出这样的改变。是否有充分的理由来解释像这样的所有变化?
我正在开发 Ubuntu 14.04,但我发现了一些我无法理解的东西。
我执行如下命令:
apt update && apt list --upgradable
我发现它bash
在可升级列表中。
现在的输出bash --version
告诉我 bash 的版本是4.3.11(1)
.
然后我做apt upgrade
。
令我惊讶的是,我又做bash --version
了一次,输出根本没有改变。的版本bash
仍然是4.3.11(1)
.
这是正常的吗?,有些包可以升级,而它的版本不会改变?
今天我配置了我公司的 PC 来设置代理,它可以工作,因为我可以wget
通过代理访问网页。
我所做的是设置http_proxy
,https_proxy
并且ftp_proxy
在~/.bashrc
和中~/.wgetrc
。
但是,当我尝试时curl www.google.fr
,它被阻止并超时。
curl --proxy $http_proxy www.google.fr
按预期工作。
是否可以curl
自动使用代理?
我在我的 ARM64 服务器上安装了Ubuntu-16.04.3-server-arm64 (hwe)。
然后我执行:
apt update && apt dist-upgrade && apt install ubuntu-desktop
然后我reboot
。但是,我看不到有关桌面的任何内容,甚至看不到应该出现在用户登录界面之前的ubuntu徽标。但ssh
在它是可能的。所以我认为这是桌面的问题。
我刚刚检查了 xorg 日志,有一些错误但我不知道该怎么办:
以下是关于显卡的信息:
我使用的是 Ubuntu16.04,我需要在没有密码的情况下登录桌面环境。
我必须通过远程 shell 进行配置,这意味着我无法通过单击“系统设置 --- 用户帐户 --- 自动登录”来执行此操作。
我刚刚搜索了我的问题并找到了一种方法:vim /etc/lightdm/lightdm.conf
并将其编辑如下:
[SeatDefaults]
autologin-user=USERNAME
我试过了,它有效。
除非我输入密码,否则这将阻止我正在做的事情。
这个窗口怎么去掉?
或者,是否可以通过远程 shell 执行“单击系统设置 --- 用户帐户 --- 自动登录”?
我读过这篇文章:
如何在启动时停止提示解锁“默认”密钥环?
但我需要的是通过远程shell进行配置。我无法通过桌面进行配置。