У меня ничего из этого не сработало, пока я не отредактировал следующий файл и не удалил строку SchemeAlias
на /usr/share/gvfs/mounts/sftp.mount
[Mount]
Type=sftp
Exec=/usr/lib/gvfs/gvfsd-sftp
AutoMount=false
Scheme=sftp
# SchemeAliases=ssh
DefaultPort=22
HostnameIsInetAddress=true
rpm
чаще всего эквивалентно dpkg
, а не apt
; эквивалентом apt
являетсяyum
(в RHEL и CentOS до выпуска 7 )илиdnf
(в Fedora и RHEL и CentOS, начиная с выпуска 8 ), илиzypper
(в SuSE). Для ваших конкретных команд:
sudo dnf distro-sync
sudo dnf install jq
sudo dnf clean all
sudo dnf autoremove
или
sudo yum upgrade
sudo yum install jq
sudo yum clean all
(Это работает, потому что jq
упакован под одним и тем же именем в обоих случаях. Это не всегда верно; данная часть программного обеспечения может быть упакована под разными именами в разных дистрибутивах или даже в разных версиях данного дистрибутива.)
См. Pacman Rosetta и руководство по миграции Ubuntu RHEL для получения подробной информации.
Вместо этого вы можете изучить инструменты управления конфигурацией, они помогут вам абстрагироваться от различий (или, по крайней мере, справляться с ними более надежно ).
Ваш if [ $(command -v yum) ]
тест ошибочен, поскольку yum
может быть установлен на производных Debian (, включая Ubuntu ); его присутствие не означает, что это менеджер пакетов. Вероятно, вам следует определить работающую операционную систему и основывать свой выбор на ней; см. Как я могу надежно получить имя операционной системы? для получения подробной информации.
Нет, параметры и аргументы apt
и yum
отличаются, как и имена пакетов во многих случаях.
Вы также, кажется, путаете rpm
и yum
, yum
эквивалентно apt
, rpm
эквивалентно dpkg
. dpkg
— бэкенд для apt
, rpm
— бэкенд для yum
.
Вам придется просмотреть страницы man
для apt
и yum
, чтобы найти эквивалентные параметры. В качестве альтернативы вы можете посмотреть на инструмент управления конфигурацией, такой как puppet
, который абстрагирует множество различий между ОС между дистрибутивами, но это может быть излишним для того, что вы делаете.