PSk*_*cik 22 debian package-management ubuntu
我可以让包管理器解决冲突,例如通过重命名二进制文件(例如 parallel → gparallel)或安装到不同的地方(例如 /usr/ → /usr/local/)吗?
agc*_*agc 19
对于Ubuntu的v17.04(“灿烂美洲林跳鼠属”)和Debian的V9(“拉伸”) ,(2017年或更新版本),或基于这些版本的发行版,请阅读布赖恩·拉森的答案 首先,这应该是足够了。
对于2017 年之前的版本,请继续阅读...
使用dpkg以强制安装; parallel与moreutils相处得很好——它将moreutils的parallelutil重命名为parallel.moreutils. 安装完成后,两个程序(GNU和moreutils)都可用。
注意:如果任何用户脚本调用旧的moreutils parallel,请更改这些脚本以使用更长的名称。
详细信息:获取并行包(无需安装或删除任何东西)。然后使用compgen, (bash内部命令)在存档中找到并行包。如果有多个,请使用最新的。尽管存在冲突,但仍强制安装该软件包。
apt-get --assume-yes --download-only install parallel &&
ls --sort=version $(compgen -f /var/cache/apt/archives/parallel) |
tail -n 1 | xargs dpkg --force-conflicts -i
Run Code Online (Sandbox Code Playgroud)
如何查看由此产生的改道:
dpkg-divert --list 'par*'
Run Code Online (Sandbox Code Playgroud)
输出:
diversion of /usr/share/man/man1/parallel.1.gz to /usr/share/man/man1/parallel.moreutils.1.gz by parallel
diversion of /usr/bin/parallel to /usr/bin/parallel.moreutils by parallel
Run Code Online (Sandbox Code Playgroud)
查看两个二进制可执行文件如何可用:
compgen -c parallel | xargs which | xargs ls -l
Run Code Online (Sandbox Code Playgroud)
输出:
-rwxr-xr-x 1 root root 240814 Oct 31 2014 /usr/bin/parallel
-rwxr-xr-x 1 root root 10592 Jul 21 2015 /usr/bin/parallel.moreutils
Run Code Online (Sandbox Code Playgroud)
小智 8
如果您安装parallel & moreutils,您将获得GNU parallel as/usr/bin/parallel和moreutil的parallelas /usr/bin/parallel.moreutils。如果您只安装moreutils,它会提供/usr/bin/parallel.
如果您使用的是较旧版本的Ubuntu或Debian,您可以从较新版本下载并安装 .deb:它们安装并运行良好。
小智 1
我想,最简单的方法是正常安装其中一个软件包(例如parallel),然后将另一个软件包提取到自定义路径:
$ sudo apt-get install libio-pty-perl libipc-run-perl
$ sudo apt-get download moreutils
$ dpkg -x moreutils_0.54-1_amd64.deb /tmp/moreutils
$ cd /tmp/moreutils/usr/bin/
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3302 次 |
| 最近记录: |