AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-171267

sdbbs's questions

Martin Hope
sdbbs
Asked: 2025-03-21 22:47:39 +0800 CST

您可以使用 debuild 仅将补丁应用到源然后退出吗?

  • 6

gcc-6我正在尝试在 Raspbian stretch 上构建源包;因此我这样做:

apt source gcc-6
cd gcc-6-6.3.0/debian
debuild -b -uc -us

该debuild命令启动完整构建。由于构建在我的平台上崩溃,我想运行一个命令,它将解压源代码并应用 Debian 补丁,然后在配置之前停止(这样我就可以应用自己的补丁) - 然后我可以继续debuild -b -uc -us -nc。

是否有命令可以帮助我做到这一点?

debian
  • 1 个回答
  • 20 Views
Martin Hope
sdbbs
Asked: 2025-03-20 04:25:03 +0800 CST

如何找到哪个 Debian 包可能包含给定的源文件?

  • 6

我想在 中调试我的应用程序gdb,但是可能需要一些系统库的完整源代码。例如,在 中的调试过程中的某个时刻gdb,我遇到了以下情况:

...
(gdb) si
0x00047e28 in std::thread::detach() ()
(gdb) c
Continuing.
...
Thread 1 "myProject" received signal SIGABRT, Aborted.
raise (sig=<optimized out>) at ../sysdeps/unix/sysv/linux/raise.c:51
51      ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.

我不确定为什么std::thread::detach()我没有得到源文件建议(我在线手动查找并发现它在libstdc++-v3/src/c++11/thread.cc中),但raise()我确实得到了源文件和行../sysdeps/unix/sysv/linux/raise.c:51。

无论如何,对于其中任何一个,thread.cc或者raise.c,我如何找到给定 Debian 上的哪个源apt source [package]包包含它们?因此,我最终可以获取它们并提供这些文件的路径,如https://stackoverflow.com/questions/48278881/gdb-complaining-about-missing-raise-c/48287761#48287761gdb中所述,这样我就可以逐步浏览源代码行(特别是查看底层函数从我的代码中接收什么作为参数)...

我已经尝试过apt-file,但是它似乎不适用于源包:

$ apt-file search raise.c
gnulib: /usr/share/gnulib/lib/raise.c
gnulib: /usr/share/gnulib/tests/test-raise.c

很酷,但是这些看起来都不像../sysdeps/unix/sysv/linux/raise.c?!

$ apt-file search thread.cc
c++-annotations: /usr/share/doc/c++-annotations/examples/yo/threading/examples/functorthread.cc
libglibmm-2.4-doc: /usr/share/doc/libglibmm-2.4-doc/examples/thread/thread.cc
omniorb-doc: /usr/share/doc/omniorb-doc/examples/poa/threading/mainthread.cc
rust-src: /usr/src/rustc-1.24.1/src/libcompiler_builtins/compiler-rt/lib/asan/asan_thread.cc
rust-src: /usr/src/rustc-1.24.1/src/libcompiler_builtins/compiler-rt/lib/lsan/lsan_thread.cc
rust-src: /usr/src/rustc-1.24.1/src/libcompiler_builtins/compiler-rt/lib/msan/msan_thread.cc
rust-src: /usr/src/rustc-1.24.1/src/libcompiler_builtins/compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cc
rust-src: /usr/src/rustc-1.24.1/src/libcompiler_builtins/compiler-rt/lib/tsan/tests/rtl/tsan_thread.cc
rust-src: /usr/src/rustc-1.24.1/src/libcompiler_builtins/compiler-rt/test/tsan/race_with_finished_thread.cc
rust-src: /usr/src/rustc-1.24.1/src/libcompiler_builtins/compiler-rt/test/tsan/signal_thread.cc

好的,apt-file再次发现了一些东西,但它们似乎都是误报,没有任何内容符合预期libstdc++-v3/src/c++11/thread.cc。

那么,有没有办法在 Debian 上查找这样的源文件?具体来说,我在 Raspberry Pi 3B+ 上使用 Raspbian Stretch。

debian
  • 1 个回答
  • 46 Views
Martin Hope
sdbbs
Asked: 2025-02-19 19:10:39 +0800 CST

按名称查找项目,并打印出它们是否是目录文件?

  • 9

请考虑以下示例:

mkdir /tmp/test2 && cd /tmp/test2
mkdir -p aa/{tmp,src}
mkdir -p bb/aa/{tmp,src}
mkdir -p {dd,ee}/bb
touch {dd,ee}/bb/aa

tree | awk '{print "# " $0}'
# .
# ├── aa
# │   ├── src
# │   └── tmp
# ├── bb
# │   └── aa
# │       ├── src
# │       └── tmp
# ├── cc
# │   └── aa
# │       ├── src
# │       └── tmp
# ├── dd
# │   └── bb
# │       └── aa
# └── ee
#     └── bb
#         └── aa
#
# 16 directories, 2 files

因此,我想找到所有名为的项目aa,并以与相同的格式将它们打印出来ls -la,这样我就可以知道它们是文件还是目录。

如果我使用典型的find-exec那么ls -a目录本身就不会打印为项目,而是其内容如下:

$ find . -name aa -exec ls -la {} \;
total 0
drwxr-xr-x 1 user None 0 Feb 19 11:59 .
drwxr-xr-x 1 user None 0 Feb 19 12:00 ..
drwxr-xr-x 1 user None 0 Feb 19 11:59 src
drwxr-xr-x 1 user None 0 Feb 19 11:59 tmp
total 0
drwxr-xr-x 1 user None 0 Feb 19 11:59 .
drwxr-xr-x 1 user None 0 Feb 19 11:59 ..
drwxr-xr-x 1 user None 0 Feb 19 11:59 src
drwxr-xr-x 1 user None 0 Feb 19 11:59 tmp
total 0
drwxr-xr-x 1 user None 0 Feb 19 11:59 .
drwxr-xr-x 1 user None 0 Feb 19 11:59 ..
drwxr-xr-x 1 user None 0 Feb 19 11:59 src
drwxr-xr-x 1 user None 0 Feb 19 11:59 tmp
-rw-r--r-- 1 user None 0 Feb 19 12:00 ./dd/bb/aa
-rw-r--r-- 1 user None 0 Feb 19 12:00 ./ee/bb/aa

如果我改用,ls -lad {}/那么我明确地只打印出目录节点,那么文件节点根本就不会打印,而是收到错误“不是目录”:

$ find . -name aa -exec ls -lad {}/ \;
drwxr-xr-x 1 user None 0 Feb 19 11:59 ./aa/
drwxr-xr-x 1 user None 0 Feb 19 11:59 ./bb/aa/
drwxr-xr-x 1 user None 0 Feb 19 11:59 ./cc/aa/
ls: cannot access './dd/bb/aa/': Not a directory
ls: cannot access './ee/bb/aa/': Not a directory

bash如果我直接在命令行上尝试某种条件,它会失败:

# test
$ [ -d aa ] && echo dir || echo file
dir

$ find . -name aa -exec [ -d {} ] && ls -lad {}/ || ls -la {} \;
find: missing argument to `-exec'
ls: cannot access '{}': No such file or directory
ls: cannot access ';': No such file or directory

那么,我该如何使用find . -name aa,最终我得到这个输出:

drwxr-xr-x 1 user None 0 Feb 19 11:59 ./aa/
drwxr-xr-x 1 user None 0 Feb 19 11:59 ./bb/aa/
drwxr-xr-x 1 user None 0 Feb 19 11:59 ./cc/aa/
-rw-r--r-- 1 user None 0 Feb 19 12:00 ./dd/bb/aa
-rw-r--r-- 1 user None 0 Feb 19 12:00 ./ee/bb/aa
files
  • 2 个回答
  • 168 Views
Martin Hope
sdbbs
Asked: 2024-12-05 20:54:56 +0800 CST

在终端中显示连接到 sshd 服务器的用户的非截断用户名?

  • 6

在我的 Ubuntu 服务器上,我发现它非常有用,netstat -tulpn它还显示了所连接的用户名sshd(显然,这个用户名打印是专门为sshd) - 不幸的是,这个打印输出也被截断了:

$ sudo netstat -tulpn | grep 'PID\|user1'
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:12345           0.0.0.0:*               LISTEN      1620557/sshd: user1
tcp6       0      0 :::12345                :::*                    LISTEN      1620557/sshd: user1

在上面的例子中,完整的用户名是user1234,但由于截断,我只能读取user1。

更不幸的是,我发现这个截断在Netstat 输出行宽限制netcat中是硬编码的:

不幸的是,netstat 中 PID/程序名称列的宽度是硬编码的#define PROGNAME_WIDTH 20,因此无法直接从 netstat 获取完整输出。此外,您最终会得到 19 个字符和一个空格。

同样的答案也建议:

在今天的 Linux 中,人们可以使用sudo ss -natp稍微不同的格式来获取完整信息,但使用全名:

...不幸的是,ss没有打印所连接用户的用户sshd名netstat:

$ sudo ss -tulpn | grep user1
$

$ sudo ss -tulpn | grep 12345
tcp     LISTEN   0        128              0.0.0.0:12345          0.0.0.0:*      users:(("sshd",pid=1620557,fd=10))

tcp     LISTEN   0        128                 [::]:12345             [::]:*      users:(("sshd",pid=1620557,fd=11))

那么,如何才能获得与 的输出相同或相似的输出netstat -tulpn,但打印出与 连接的完整用户名sshd?

我的 netstat 版本是:

$ netstat --version
net-tools 2.10-alpha
Fred Baumgarten, Alan Cox, Bernd Eckenfels, Phil Blundell, Tuan Hoang, Brian Micek and others
+NEW_ADDRT +RTF_IRTT +RTF_REJECT +FW_MASQUERADE +I18N +SELINUX
AF: (inet) +UNIX +INET +INET6 +IPX +AX25 +NETROM +X25 +ATALK +ECONET +ROSE -BLUETOOTH
HW:  +ETHER +ARC +SLIP +PPP +TUNNEL -TR +AX25 +NETROM +X25 +FR +ROSE +ASH +SIT +FDDI +HIPPI +HDLC/LAPB +EUI64
ubuntu
  • 1 个回答
  • 14 Views
Martin Hope
sdbbs
Asked: 2022-02-18 04:15:09 +0800 CST

如何仅 lsattr 目录?

  • 0

我有一个名为pubUbuntu 20.04 服务器的目录,我希望防止被删除,我发现https://askubuntu.com/questions/504151/how-to-prevent-directory-from-being-deleted-by-用户所以我尝试了:

$ sudo chattr +i pub

很好,现在我想检查该属性是否已设置:

$ lsattr pub
--------------e----- pub/__pycache__
--------------e----- pub/file1.py
--------------e----- pub/file2.py
--------------e----- pub/file3.py
--------------e----- pub/file4.py

所以,我得到了列出的目录的内容,但我没有得到列出的目录,这正是我想要的。

我的意思是,如果它至少给了我一个条目pub,我会没事的——但是在这里我得到了所有的孩子,而不是我要求的……这太愚蠢了。

事实证明,有一个lsattr -R“递归”开关,我希望它提供像上面一样的输出 - 但是当我运行它时,它也只是下降到__pycache__目录中。

那么,你如何lsattr只创建一个目录,这样你就可以看到你是否实现了正确的事情chattr?

xattr
  • 1 个回答
  • 52 Views
Martin Hope
sdbbs
Asked: 2021-12-05 03:06:58 +0800 CST

为什么历史不在子shell中输出任何内容?

  • 1

我刚刚意识到它history不会在子外壳中输出任何内容。我将尝试通过计算行数来显示 - 首先使用 echo 进行完整性检查:

$ echo a | wc -l
1

...在一个子shell中:

bash -c 'echo a' | wc -l
1

实际上,我们期望在这两种情况下都有一条线路输出。现在,对于history:

$ history | wc -l
681

...但在一个子外壳中:

$ bash -c 'history' | wc -l
0

...history不返回任何行。

为什么会发生这种情况 - 我怎样才能history在子 shell 中输出当前 shell 的历史记录(包括上次会话命令)?

bash command-history
  • 1 个回答
  • 73 Views
Martin Hope
sdbbs
Asked: 2021-09-24 04:17:47 +0800 CST

在黑客/更改源之后使用 PKGBUILD 构建?

  • 0

我正在尝试破解 MSYS 包,所以我找到了https://www.msys2.org/wiki/Creating-Packages/ - 例如:

git clone "https://github.com/msys2/MSYS2-packages"
cd MSYS2-packages/flex
makepkg -sCLf

所以,如果我运行它,我会构建源代码,并得到一个包。

现在,假设我更改了 flex 包的源代码中的某些内容,并且我想重新构建。

我尝试了makepkg -sCLf,但该命令实际上删除了源目录 - 包括我的 hacks - 因此,特别是该命令不能用于构建包含 hacks/更改的源文件的包。

我可以使用什么命令来构建(希望只是)源中更改的文件,并从该源构建一个包?

compiling makepkg
  • 1 个回答
  • 177 Views
Martin Hope
sdbbs
Asked: 2019-06-15 00:12:07 +0800 CST

使用来自 devscripts 的 debi?

  • 2

我对到底是debi做什么有点困惑。

我正在构建 OLA,我发现了这篇文章:使用最新的 OLA 0.9.7 为 BBB 构建 .debs 时出错... –我见过的 Google 群组:

cd ola-0.9.7  
debuild  
# (... wait ...)  
sudo debi

所以,我确实用 .debs 构建debuild,结果得到了这些 .debs:

$ ls -1 ../*.deb
../libola1_0.10.7-1_armhf.deb
../libola1-dbgsym_0.10.7-1_armhf.deb
../libola-dev_0.10.7-1_armhf.deb
../ola_0.10.7-1_armhf.deb
../ola-dbgsym_0.10.7-1_armhf.deb
../ola-python_0.10.7-1_all.deb
../ola-rdm-tests_0.10.7-1_all.deb

问题是,当我第一次通过二进制包 (Raspbian) 安装 OLA 时,在此构建之前,我最终安装了包ola libola1 ola-rdm-tests ola-python(我在构建之前已将其卸载)。

所以,我不确定,如果我只是运行debi,我会只安装那些包,还是会安装所有生成的 .debs(包括-dbgsym和-dev包,在这种特殊情况下,我不需要)?

换句话说,如果我只想安装其中一些 .deb 包,我最好只做sudo dpkg -i [package1] [package2] ...,而不是使用sudo debi?

debian deb
  • 1 个回答
  • 63 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve