我知道如何使用rpm列出包的内容(rpm -qpil package.rpm
).但是,这需要知道.rpm文件在文件系统上的位置.更优雅的解决方案是使用包管理器,在我的例子中是YUM.如何使用YUM实现这一目标?
我在挂起的Linux机器上有一个NFS挂载的目录.我试图强制卸载,但它似乎不起作用:
$ umount -f /mnt/data
$ umount2: Device or resource busy
$ umount: /mnt/data: device is busy
Run Code Online (Sandbox Code Playgroud)
如果我输入" mount
",似乎该目录不再挂载,但如果我执行" ls /mnt/data
" 它会挂起,如果我尝试删除挂载点,我会得到:
$ rmdir /mnt/data
rmdir: /mnt/data: Device or resource busy
Run Code Online (Sandbox Code Playgroud)
除了重启机器之外,还有什么可以做的吗?
我在Ubuntu 9.10 x86_64上安装了一个二进制Linux应用程序.该应用程序附带了旧版本的gzip(1.2.4),该版本是为更老的内核编译的:
$ file gzip
gzip: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.0.0, stripped
Run Code Online (Sandbox Code Playgroud)
我无法执行此程序.如果我试过,这发生了:
$ ./gzip
-bash: ./gzip: No such file or directory
Run Code Online (Sandbox Code Playgroud)
ldd对这个二进制文件同样不满意:
$ ldd gzip
not a dynamic executable
Run Code Online (Sandbox Code Playgroud)
我很好奇:这个问题的最可能来源是什么?一个损坏的文件?或者由于为更老的{kernel,libc,...}而构建的二进制不兼容性?
每个人的建议,这里的输出strace ./gzip
:
execve("./gzip", ["./gzip"], [/* 24 vars */]) = -1 ENOENT (No such file or directory)
dup(2) = 3
fcntl(3, F_GETFL) = 0x8002 (flags O_RDWR|O_LARGEFILE)
fstat(3, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 10), ...}) = 0
mmap(NULL, 4096, …
Run Code Online (Sandbox Code Playgroud) 我想允许用户在特定端口(例如5000)上设置到特定计算机的SSH隧道,但我想尽可能地限制此用户.(身份验证将使用公钥/私钥对).
我知道我需要编辑相关的〜/ .ssh/authorized_keys文件,但我不确定要放入哪些内容(公钥除外).
当我从git repo安装"pip install -e ..."时,我必须指定#egg = somename或pip complains.例如:
pip install -e git://github.com/hiidef/oauth2app.git#egg=oauth2app
Run Code Online (Sandbox Code Playgroud)
这个"蛋"字符串有什么意义?
是否可以编写doctest单元测试来检查是否引发了异常?
例如,如果我有一个foo(x)
应该引发异常的函数,那么我该x<0
如何编写doctest呢?
我有一个数据框,我想添加一个额外的行,总计列的值.例如,假设我有这些数据:
x <- data.frame(Language=c("C++", "Java", "Python"),
Files=c(4009, 210, 35),
LOC=c(15328,876, 200),
stringsAsFactors=FALSE)
Run Code Online (Sandbox Code Playgroud)
数据如下所示:
Language Files LOC
1 C++ 4009 15328
2 Java 210 876
3 Python 35 200
Run Code Online (Sandbox Code Playgroud)
我的直觉是这样做:
y <- rbind(x, c("Total", colSums(x[,2:3])))
Run Code Online (Sandbox Code Playgroud)
这有效,它计算总数:
> y
Language Files LOC
1 C++ 4009 15328
2 Java 210 876
3 Python 35 200
4 Total 4254 16404
Run Code Online (Sandbox Code Playgroud)
问题是Files和LOC列都已转换为字符串:
> y$LOC
[1] "15328" "876" "200" "16404"
Run Code Online (Sandbox Code Playgroud)
我知道这种情况正在发生,因为我创建了一个c("Total", colSums(x[,2:3])
带有数字和字符串输入的向量,并且它将所有元素转换为通用类型,以便所有向量元素都相同.那么Files和LOC列也会发生同样的事情.
有什么更好的方法呢?
如今,Erlang作为一种在多核上编写并行程序的语言,现在引起了很多人的兴趣.我听说有人认为Erlang的消息传递模型比主流共享内存模型(如线程)更容易编程.
相反,在高性能计算社区中,主要的并行编程模型是MPI,它也实现了消息传递模型.但是在HPC领域,这种消息传递模型通常被认为很难编程,人们认为OpenMP或UPC等共享内存模型更容易编程.
有谁知道为什么在IT和HPC世界中对消息传递与共享内存的看法存在这样的差异?是否由于Erlang和MPI如何实现消息传递的一些根本区别,使得Erlang风格的消息传递比MPI更容易?还是有其他原因吗?
我正在尝试将Python M2Crypto软件包安装到x86_64 RHEL 6.1计算机上的virtualenv中.此进程调用swig,失败并显示以下错误:
$ virtualenv -q --no-site-packages venv
$ pip install -E venv M2Crypto==0.20.2
Downloading/unpacking M2Crypto==0.20.2
Downloading M2Crypto-0.20.2.tar.gz (412Kb): 412Kb downloaded
Running setup.py egg_info for package M2Crypto
Installing collected packages: M2Crypto
Running setup.py install for M2Crypto
building 'M2Crypto.__m2crypto' extension
swigging SWIG/_m2crypto.i to SWIG/_m2crypto_wrap.c
swig -python -I/usr/include/python2.6 -I/usr/include -includeall -o SWIG/_m2crypto_wrap.c SWIG/_m2crypto.i
/usr/include/openssl/opensslconf.h:31: Error: CPP #error ""This openssl-devel package does not work your architecture?"". Use the -cpperraswarn option to continue swig processing.
error: command 'swig' failed with exit status 1 …
Run Code Online (Sandbox Code Playgroud) 我想在程序的输出日志上进行正则表达式匹配(在Python中).日志包含一些如下所示的行:
...
VALUE 100 234 568 9233 119
...
VALUE 101 124 9223 4329 1559
...
Run Code Online (Sandbox Code Playgroud)
我想捕获在以VALUE开头的第一次出现之后发生的数字列表.即,我希望它返回('100','234','568','9233','119')
.问题是我事先并不知道会有多少数字.
我试图用这个作为正则表达式:
VALUE (?:(\d+)\s)+
Run Code Online (Sandbox Code Playgroud)
这匹配线,但它只捕获最后一个值,所以我得到('119',).