我目前正在为我的公寓开发家庭自动化框架。这涉及从 Arduino 获取 JSON over Serial。当无法解析 JSON 时(通常仅在启动时),我将其记录为错误。
然而今天发生了一些奇怪的事情,损坏的 JSON 导致我的一个终端变得奇怪。
[nodemon] restarting due to changes...
[nodemon] starting `node build/server`
sensor living-room-humidity on serial:arduino-master:42
sensor living-room-temperature on serial:arduino-master:42
sensor living-room-motion on serial:arduino-master:42
sensor living-room-brightness on serial:arduino-master:42
sensor kitchen-humidity on serial:arduino-master:43
sensor kitchen-temperature on serial:arduino-master:43
sensor kitchen-motion on serial:arduino-master:43
sensor kitchen-brightness on serial:arduino-master:43
listening on http://127.0.0.1:50000
serial opened: arduino-master
serial error can't parse JSON: S?????E????: U?e??ec?ed ???e?
?e???? d??c??e?ed: /de?/???USB?
/#Y?dB?±dPSX2?TB?8AAAA c???ec?ed
/#Y?dB?±dPSX2?TB?8AAAA ????e???c??ed
[??de???] ?e???????± d?e ?? c???±e????
[??de???] ???????± …Run Code Online (Sandbox Code Playgroud) 跟进Ubuntu LTS 二进制文件是否与 Debian 兼容?
我知道 Ubuntu 和 Debian 二进制包常常不兼容。我知道混合来自不同来源的软件包通常是一个坏主意,并且人们总是被警告不要这样做。因此,让我们继续讨论纯粹的技术问题——
当依赖关系不是问题时,到底是什么会导致不同来源的包不兼容呢?
------ 分离,下面详细介绍 ------
就像那句话:
关于二进制兼容性(https://wiki.ubuntu.com/MarkShuttleworth#What_about_binary_compatibility_ Between_distributions.3F):Debian 软件包可能是使用不同的工具链版本构建的,因此您可能会遇到麻烦
为什么不同的工具链版本会出现问题?喜欢
以前从未遇到过问题。那么到底是什么导致了人们所说的问题呢?
是 gcc 还是内核版本?对我来说不太可能,因为它们在我使用该版本的整个生命周期中一直在升级。
那么是glibc的版本吗?但它通常会向后兼容,而且很有可能,对吧?
引用我第一个链接的答案:
实际上并不能保证甚至暗示交叉兼容性。如果出现问题,不要指望 Debian 或 Ubuntu 社区会给您太多同情。在那种情况下,你基本上只能靠自己了。只要您对此感到满意,就可以尝试一下。
所以基本上我到处都看到针对这种做法的警告,但没有人给出进一步的技术解释。谁能列出这样做的风险,那些潜在的技术问题吗?
如果我想/需要混合来自不同来源(例如 Debian 或 Ubuntu)的软件包,或者在同一发行版但不同版本中混合软件包(如果依赖关系不是问题),这个答案将帮助我选择最安全的方法,以拉取我确信 PPA 永远不会出现在 Debian 中,进入我目前正在使用的 Debian Bullseye 中。
在Linux中,如何识别二进制文件是否为set-user-ID?
我可以用吗ls -l?
我有一个活动的 root 帐户,但我不知道我的密码。
为了能够更改我的密码甚至创建另一个用户(使用该工具passwd),我需要知道我的密码。所以这就产生了一个问题。但是因为我是 root - 我可以替换/bin/目录中的任意二进制文件吗?只需修改passwd源代码,编译它,用新的替换原来的。有那么简单吗?有什么注意事项吗?
我的测试系统是:FreeBSD 11.0+Ubuntu 18.04