标签: source

为什么存储库中有预编译的包?

我喜欢 Linux & Co. 如何让用户从不同的存储库安装许多软件包。AFAIK,它们还附带源码包,所以你可以自己编译它们。

但是,当您可以自己编译它们时,为什么还要费心“保留/提供”预编译的包呢?保留/提供它们的意图是什么?

是否可以配置Linux,只下载源包并让操作系统完成其余的工作?(就像预编译包安装一样?)

谢谢您的回答。

linux packaging source repository

15
推荐指数
4
解决办法
4802
查看次数

用于设置深色或浅色终端背景的通用环境变量

我已经写了 调试器,所有可以在上色终端会话中所示的源代码的文本。他们都明白,有些终端是深色背景,有些是浅色背景,当然颜色需要根据终端方案而有所不同。

当您的终端与默认背景不匹配时,必须设置为其他方案很烦人,所以我想找到一种方法来自动解决这个问题。建议?(他们都支持选项--highlight={light|dark|plain}

一种简单的机制是关闭环境变量。对于我的壳型材我一直在使用DARK_BACKGROUND_COLOR,但如果已经有某种形式的默认名称的像有是PAGEREDITORSHELLHOME,等我想利用这一点。

有这样的环境命名约定吗?其他建议?

编辑:根据接受的答案和讨论,我已从使用切换DARK_BACKGROUND_COLORCOLORFGBG. 值15;0适用于深色背景(技术上为黑底白字),0;15(技术上为白底黑字)适用于浅色背景。

shell source terminal

13
推荐指数
3
解决办法
4258
查看次数

我在哪里可以找到 /bin/ip 的源代码?

我一直在使用命令/bin/ip

ip addr add 10.10.10.0 dev eth0
Run Code Online (Sandbox Code Playgroud)

我想查看该ip命令如何工作的源代码。是可用的么?

source

13
推荐指数
1
解决办法
6008
查看次数

如何在不捕获注释的情况下对源代码进行 grep

我搜索了一种对源代码进行 grep 的方法,而不会因为评论而有时误报。例如,如果我在这个 .c 源代码上搜索 foo :

/* 
 * foo has changed [...] and is now a 2-parameters function
 */
// foo(24)
foo(42, 28);
Run Code Online (Sandbox Code Playgroud)

一个天真的grep会发现 3 次我只想要一个。我在 StackOverflow 上看到过这种方法,但它不能满足我的需求:PHP 在平台上不可用。我也为单行注释找到了这种方式,但它只能解决我的一部分问题。

我需要使用经典的脚本工具(awk、sed、bash、grep 等),并且即使有数千个文件,我也需要它很快

您现在是否以及如何可以对源代码进行 grep,并且仅对源代码进行 grep?

grep source files

11
推荐指数
2
解决办法
7678
查看次数

在哪里可以找到标准 linux 命令行工具的来源?

Into:我喜欢通过阅读资源来学习。但是在许多不同的项目站点上的互联网上搜索它们很累。我很想在一个地方看到包含许多应用程序源的中央可浏览存储库。

  • 当有人想找到一些 Linux 工具的文档时,最好的地方是 : man toolname
  • 当我想“按需”浏览 Linux 源代码时,我总是可以跳转到:Linux Cross Reference
  • 当我想找到最常见的员工时,我可以在Coreutils 中找到所有来源 。
  • 当我想检查如何构建某些东西时,我可以(例如)跳转到http://www.archlinux.org/packages/,检查它的 pkgbuild。

是否有任何存储库将大多数工具的来源集中在一个地方?- 就像man持有文档或Linux 交叉参考内核源代码一样。

我的意思是“快速”“按需”检查东西是如何实现的。(是的,我知道 google -> 但我厌倦了日常工作:1. 搜索项目站点 2. 浏览 repo 或更糟 -> 查看它的 repo 3. 完成后删除)

评论:

我已经强调了,我想检查工具:快速、快速、按需。

这意味着:我不想安装带有它的源的整个应用程序只是为了查看它的源。(顺便说一句。网络资源更可取,所以我可以检查多台计算机的来源 - 我没有对所有计算机的管理员)

linux programming source opensource-projects learning

11
推荐指数
1
解决办法
1647
查看次数

bash:无法设置终端进程组 (-1):设备的 ioctl 不合适

尝试在 ubuntu 14.04 上使用“lfs”用户执行源命令并得到:

root@linux:~/lfs# su lfs - -c "source ~/.bash_profile"
bash: cannot set terminal process group (-1): Inappropriate ioctl for device
bash: no job control in this shell
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

背景信息:我正在关注 LFS 的书,用它制作一个脚本,所以在我用 sudo 执行的脚本中,当它到达这部分时,在创建 lfs 用户和他的 .bashrc 和 .bashprofile 之后,我猜它正在加载它。

语境:

echo "info: create 'lfs' group and user..."
groupadd -f lfs
id -u lfs &>/dev/null || useradd -s /bin/bash -g lfs -m -k /dev/null lfs
passwd -d -q lfs

echo "info: make 'lfs' own the 'tools' and 'sources' directories..." …
Run Code Online (Sandbox Code Playgroud)

bash source ubuntu su lfs

11
推荐指数
1
解决办法
6万
查看次数

为什么源 lib/* 不起作用?

我有一个包含以下文件夹结构的小程序:

- main.sh
- lib/
  - clean.sh
  - get.sh
  - index.sh
  - test.sh
Run Code Online (Sandbox Code Playgroud)

每个文件都包含一个我在main.sh.

main.sh

source lib/*

get_products
clean_products
make_index
test_index
Run Code Online (Sandbox Code Playgroud)

在上面的前两个函数中,后两个函数不起作用。

但是,如果我替换source lib/*为:

source lib/get.sh
source lib/clean.sh
source lib/index.sh
source lib/test.sh
Run Code Online (Sandbox Code Playgroud)

一切都按预期工作。

有谁知道为什么source lib/*不能按预期工作?

bash source

11
推荐指数
3
解决办法
1214
查看次数

为什么 Bash 的“source”命令在从函数中调用时表现不同?

鉴于以下来源的barBash 脚本......

echo :$#:"$@":
Run Code Online (Sandbox Code Playgroud)

...以及以下可执行的fooBash 脚本:

echo -n source bar:
source bar
echo -n source bar foo:
source bar foo

function _import {
  source "$@"
}

echo -n _import bar:
_import bar
echo -n _import bar foo:
_import bar foo
Run Code Online (Sandbox Code Playgroud)

运行fooBash 脚本时,我得到以下输出,即./foo

source bar::0::
source bar foo::1:foo:
_import bar::1:bar:
_import bar foo::1:foo:
Run Code Online (Sandbox Code Playgroud)

以下是我的问题:

  1. 当我source_import函数中调用 Bash 的命令而不是直接调用时,为什么会有所不同?
  2. 如何规范 Bashsource命令的行为?

我在 Fedora 版本 20 上使用 Bash 版本 4.2.47(1)-release。

bash source shell-builtin

10
推荐指数
2
解决办法
1万
查看次数

如何知道 debian 中软件包的源存储库?

在 Debian 中,AFAIK 一些包在 Subversion(著名的 team-pkg-gnome)中维护,而一些在 git 中维护,而另一些在其他一些 VCS 中维护。

有没有办法知道包的来源在哪里而不做apt-get source $PACKAGENAME

我尝试了三种方法,但都失败了:-

$apt show $PACKAGENAME
$aptitude show $PACKAGENAME 
$apt-cache show $PACKAGENAME 
Run Code Online (Sandbox Code Playgroud)

以上均无法提供/共享此信息。

有没有办法获取信息。我需要知道源代码库。名称以及它是否在 git、svn 或其他版本控制中。

source debian version-control package-management

10
推荐指数
2
解决办法
2242
查看次数

passwd 错误消息的来源

我正在测试如果passwdsetuid 位被禁用该命令是否可以运行。我通过运行以下命令禁用了 setuid:

chmod 0554 /bin/passwd
Run Code Online (Sandbox Code Playgroud)

这样做之后,我测试了该passwd命令是否仍然能够运行。但正如预料的那样,事实并非如此。相反,它给了我以下错误:

passwd: Authentication token manipulation error
Run Code Online (Sandbox Code Playgroud)
passwd: password unchanged
Run Code Online (Sandbox Code Playgroud)

我尝试在源代码中查找这些错误消息,但在该文件中找不到它们。谁能指导我找到包含上面显示的错误消息的源文件?

password source ubuntu setuid passwd

10
推荐指数
2
解决办法
1443
查看次数