我刚刚用 Ubuntu Oneiric 11.10 设置了一台新机器,然后运行
apt-get update
apt-get upgrade
apt-get install git
Run Code Online (Sandbox Code Playgroud)
现在如果我运行git --version它告诉我我有git version 1.7.5.4但在我的本地机器上我有更新的git version 1.7.9.2
我知道我可以从源代码安装以获得最新版本,但我认为尽可能多地使用包管理器来保持一切标准化是一个好主意。
那么是否可以使用apt-get来获取更新版本的git,正确的方法是什么?
我只是注意到,在我的一台机器上(运行 Debian Sid),每当我输入ls任何带空格的文件名时,它周围都有单引号。
我立即检查了我的别名,却发现它们完好无损。
wyatt@debian630:~/testdir$ ls
'test 1.txt' test1.txt
wyatt@debian630:~/testdir$ alias
alias ls='ls --color=auto'
alias wget='wget --content-disposition'
wyatt@debian630:~/testdir$
Run Code Online (Sandbox Code Playgroud)
另一个测试,文件名中包含单引号(也回答了 jimmij 的请求):
wyatt@debian630:~/testdir$ ls
'test 1.txt' test1.txt 'thishasasinglequotehere'\''.txt'
wyatt@debian630:~/testdir$ touch "'test 1.txt'"
wyatt@debian630:~/testdir$ ls
''\''test 1.txt'\''' test1.txt
'test 1.txt' 'thishasasinglequotehere'\''.txt'
Run Code Online (Sandbox Code Playgroud)
使用新的 coreutils-8.26 输出进行更新(诚然,这不那么令人困惑,但默认情况下仍然令人恼火)。感谢 Pádraig Brady 提供此打印输出:
$ ls
"'test 1.txt'" test1.txt
'test 1.txt' "thishasasinglequotehere'.txt"
$ ls -N
'test 1.txt' test1.txt
test 1.txt thishasasinglequotehere'.txt
Run Code Online (Sandbox Code Playgroud)
为什么会这样?我如何正确停止它?
需要明确的是,我自己将 ls 设置为自动彩色输出。它从来没有在事物周围加上引号。
我正在运行bash,coreutils 8.25。
有什么方法可以在不重新编译的情况下解决这个问题?
编辑:出现 coreutils 开发人员选择)打破惯例并将其设为全局默认值。 …
yum update和之间有什么区别yum upgrade,我什么时候应该使用一个而不是另一个?
执行操作时,apt-get upgrade我有时会收到一条消息,提示“以下软件包已被保留”。例如:
$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages have been kept back:
linux-headers-server linux-image-server linux-server
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
Run Code Online (Sandbox Code Playgroud)
这究竟是什么意思?显然,这些软件包已被阻止且未安装,但为什么呢?
接下来的问题是:如何升级这些保留的软件包?
在启动aptitude upgradeor之前,有没有办法apt-get upgrade设置一些东西,以便您可以“轻松”将系统回滚到实际升级之前的“apt”状态,如果出现问题?
即,例如,重新安装在此过程中升级的旧版本软件包。
(编辑)一些提示:我知道etckeeper例如使用一些钩子,apt以便在apt安装或卸载软件包时通知它。我想可能有某种脚本可以保存新安装的软件包列表及其以前的版本号,以便能够从apt缓存 ( /var/cache/apt/archives) 中重新安装它们。还有checkinstall哪些可以跟踪文件修改...
有关如何正确实现这一目标的任何详细信息?
我想在我的 CentOS 6.5 机器上安装 Android NDK。但是当我运行程序时,它说它需要 glibc 2.14 才能运行。我的 CentOS 6.5 只安装了 Glibc 2.12。所以我尝试通过以下方式更新 glibc:
$ sudo yum update glibc
Run Code Online (Sandbox Code Playgroud)
但是之后我发现glibc版本仍然是2.12,而不是2.14。
$ ldd --version
ldd (GNU libc) 2.12
Run Code Online (Sandbox Code Playgroud)
我认为 glibc 2.14 在 CentOS 存储库上可能不可用。那么如何在 CentOS 6.5 上将其更新为 glibc 2.14?
我无法更新安装了两个 Ubuntu 的系统:一个是 16.04 版,另一个是 17.04 版。在两者中,我都遇到了同样的错误。
例如,在 Ubuntu 16.04 中,我运行software updater并得到如下所示的结果。
我确实等了一段时间,但updater没有继续前进。
然后我按下了Stop按钮,它把我带到了下面的弹出窗口。
然后我按下按钮Install now,它把我带到下一个弹出窗口,如下所示。
我在这里等了一段时间,但它卡在了那里。
我无法在任一安装中更新。
由于我无法进行任何更新,有什么解决方案?
(还希望查看者查看未经授权的远程或其他方式的篡改是否会导致此错误。如果是,如何解决此问题?)
如果我无法更新,我可能不得不费力地从头开始重新安装这两个安装,这是我想避免的。
参考上面提到的“安装更新”的第三张图片:它确实继续进行并完全更新。但是在重新启动并再次运行后software updater,我遇到了一个新问题。现在运行时software updater,它会显示消息check your Internet connection。我已经在这里发布了这个问题。
我只是想知道什么是等价的
apt-get upgrade
apt upgrade
yum update
Run Code Online (Sandbox Code Playgroud)
用 OpenWRT 还是 LEDE?
当我更新我的系统时,机器告诉我要下载的包的大小并询问我:
is this ok: [y/d/N]?
我知道y(是)和N(否)的意思,但不知道d代表什么。有人可以向我解释一下吗?
注意:如果需要,我正在运行 Fedora 20。
我正在使用 CentOS 6.3。当我尝试使用 yum 更新我的系统时,我收到以下消息:
yum update
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.ircam.fr
* centosplus: miroir.univ-paris13.fr
* extras: mirrors.ircam.fr
* update: centos.quelquesmots.fr
http://mirror.centos.org/centos/6/addons/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404"
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: addons. Please verify its path and try again
Run Code Online (Sandbox Code Playgroud)
yum clean all
Loaded plugins: fastestmirror
Cleaning repos: CactiEZ addons base centosplus extras pgdg93 update
Cleaning up Everything
Cleaning up …Run Code Online (Sandbox Code Playgroud)