Articles of GNU

每个GNU / Linux发行版都有Python吗?

我想知道是否是预先安装的每个G / L分布上的Python。 为什么它在GNU / Linux上非常stream行,而不是在Windows上呢?

无法在R(在我的Linux机器上)中安装脱字符包

在尝试在R中安装脱字符号包时遇到以下错误。 g++: error: /tmp/Rtmp2Tos7n/R.INSTALL2e6e30153a74/nloptr/nlopt-2.4.2/lib/libnlopt_cxx.a: No such file or directory make: *** [nloptr.so] Error 1 ERROR: compilation failed for package 'nloptr' * removing '/rmt/csfiles/pgrads/mava290/R/x86_64-suse-linux-gnu-library/3.1/nloptr' Warning in install.packages : installation of package 'nloptr' had non-zero exit status ERROR: dependency 'nloptr' is not available for package 'lme4' * removing '/rmt/csfiles/pgrads/mava290/R/x86_64-suse-linux-gnu-library/3.1/lme4' Warning in install.packages : installation of package 'lme4' […]

我将使用哪种GNU / Linux命令行工具来执行search和replace文件?

我将使用哪种GNU / Linux命令行工具来执行search和replace文件? search文本和replace能否以正则expression式格式指定?

Bash数组和否定的下标,是或否?

GNU bash手册告诉我 如果使用语法分配了任何variables,则会自动创build索引数组 name[subscript]=value 下标被视为必须计算为数字的算术expression式。 如果下标的计算结果为小于零的数字,则将其用作大于数组最大索引的偏移量(因此,下标-1表示数组的最后一个元素)。 所以我想我会试一试,得到以下结果: $ muh=(1 4 'a' 'bleh' 2) $ echo $muh 1 $ echo ${muh[*]} 1 4 a bleh 2 # so far so good so now I'll try a negative … $ echo ${muh[-1]} -bash: muh: bad array subscript # didn't go as planned! 我做错了什么,或者网站错了,或者是与在CentOS下运行的bash不同的gnu bash? 谢谢!

LD_LIBRARY_PATH似乎不起作用

我试图编译一个testing文件: gcc -o test test.c -lg2c 但我得到的错误: /usr/bin/ld: cannot find -lg2c 如果我使用: gcc -o test test.c -L/usr/lib/gcc/x86_64-redhat-linux/3.4.6 -lg2c 那么它工作正常。 所以我添加了这样的path: LD_LIBRARY_PATH=/usr/lib/gcc/x86_64-redhat-linux/3.4.6:$LD_LIBRARY_PATH 当我使用$LD_LIBRARY_PATH它在那里列出,但是: gcc -o test test.c -lg2c 仍然不起作用,它给出了同样的错误,我不明白为什么。 我正在使用CentOS(2.6.32-279.9.1.el6.x86_64),任何帮助将不胜感激。 编辑 :编译器版本: rpm -qa | grep gcc gcc-4.4.6-4.el6.x86_64 compat-gcc-34-g77-3.4.6-19.el6.x86_64 libgcc-4.4.6-4.el6.x86_64 compat-gcc-34-3.4.6-19.el6.x86_64 gcc-gfortran-4.4.6-4.el6.x86_64 libgcc-4.4.6-4.el6.i686 gcc-c++-4.4.6-4.el6.x86_64 编辑 :我尝试使用LIBRARY_PATH而现在我得到一个不同的错误: gcc: spec failure: unrecognized spec option 'M' 我不知道这是什么意思。

为相关文件中的新版本提供版本号(文档)

我会有兴趣知道你在那里如何处理新版本问题的版本号。 如何处理相关文件(如手册页等)中的版本号 该软件是用gnu工具链构build的,所以autoconf,automake等等可用于应用程序的版本号。 这样的信息可以被重复使用。 git被用作vcs。 一种可能性是在Makefile.am中引入一个额外的新目标,该目标执行sed / awk来replace所有关联文件中的版本号和date。 这个目标可以在新版本开发的开始(分支之后)被调用一次。 然后,项目可以build立正确的信息时,人们会做项目的git克隆或释放tarball完成。 当然,开始开发新版本时,必须记得运行这个目标。 另一个select是用dist钩子来执行sed / awkreplace。但是这会让项目的git仓库处于一种状态,没有正确的版本号码与关联的文件相关联。 我更喜欢做第一个解决scheme,因为它也logging了git历史中的正确版本号。 在进行sed / awkreplace时,你更喜欢使用“in-file”还是使用autoconf / automake工具中的模板in-file。 我看到两种方法的优点和缺点。 你如何处理关联文件的版本控制 。 在开发阶段开始的时候是否改变它们,在出货之前是否改变它们,你们是做replace还是更喜欢使用模板? 谢谢。

我怎样才能logging在GNU / Linux中使用磁盘的进程或内核活动?

在特定的Debian服务器上,iostat(以及类似的)报告正在进行的磁盘写入的意外高容量(以字节为单位)。 我无法确定哪个进程正在执行这些写操作。 两个有趣的点: 试图closures系统服务一次一个都无济于事。 磁盘活动保持相当稳定和意外高。 尽pipe写作,似乎并没有消耗更多的整个磁盘空间。 这两个都让我觉得这个写作可能是内核正在做的事情,但是我并没有交换,所以我不清楚Linux可能会写什么。 可以试试看: http://www.atcomputing.nl/Tools/atop/ 但是想避免修补我的内核。 任何想法如何跟踪这个?

如何使用mount(8)和fstab注册FUSE文件系统types?

我已经写了一个小型的基于FUSE的文件系统,现在唯一缺less的部分就是我想用fstab(5)来注册它,以便在系统启动时自动挂载它,并且/或者用mount /srv/virtual-db 。 我怎样才能做到这一点? 我知道,我可以从一些初始化脚本运行/usr/bin/vdbfs.py /srv/virtual-db ,但这并不完美。 我很抱歉,因为这可能不完全是一个编程问题,但它是高度相关的,因为打包和部署仍然是程序员的工作。

没有findgcc-arm-linux-gnueabi命令

我正在尝试为ubuntu安装gnu arm工具链。 我首先从CodeSourcery下载了tar。 但是当我进入bin文件夹时,我无法运行任何二进制文件。 我已经试过./和没有,并把它放在PATH,它不断告诉我“命令未find”,但文件在我面前的文件夹中。 然后,我试过sudo apt-get安装gcc-arm-linux-gnueabi,除非它说已经安装成功,我找不到它与whereis gcc-arm-linux-gnueabi。 谁能帮忙?

在Linux下,C ++源代码如何变成可执行文件或静态/dynamic库。 以及程序在运行时如何加载到内存中

我知道源代码可以编译并链接到共享/静态库或ELF可执行文件。 当程序运行时,它会加载到内存中,并根据ELF格式创build一个过程映像。 但我不知道程序如何加载共享库。 链接器如何在外部库中寻找符号以及.a归档如何工作。 如果程序在64位操作系统上运行,还应该知道些什么? 我正在试图把它画出来。 有人可以对整个事情进行一般性的讨论,并提供参考资料/文件/链接,以便我们可以一一研究。 提前致谢。 我想我的问题可以这样描述: 在Linux下,C ++源代码如何变成可执行文件或静态/dynamic库。 以及程序在运行时如何加载到内存中。 在GREATE细节! 以及我可以使用多less工具来检查/操作Linux二进制文件(可执行文件和库)? 我知道一些“纳米”“readelf”。