Tenho uma instância EC2 executando Amazon Linux 2023. Adicionei o repositório fish de acordo com as instruções. Eu usei dnf config-manager --add-repo...
e então dnf config-manager --enable-repo...
. Eu também adicionei g++, cmake, pcre2, gettext, gcc, pip
quaisquer pacotes do tipo build.
[root@ip-172-31-24-201 /etc/yum.repos.d]# ls
amazonlinux.repo fish.repo kernel-livepatch.repo
Eu corri:
[root@ip-172-31-24-201 /etc/yum.repos.d]# dnf clean all
22 files removed
[root@ip-172-31-24-201 /etc/yum.repos.d]# dnf update
Amazon Linux 2023 repository 38 MB/s | 25 MB 00:00
Amazon Linux 2023 Kernel Livepatch repository 55 kB/s | 10 kB 00:00
Fish shell - 3.x release series (CentOS_8) 27 kB/s | 18 kB 00:00
Dependencies resolved.
Nothing to do.
Complete!
Quando tento instalar o FISH, recebo os seguintes erros:
[root@ip-172-31-24-201 ec2-user]# dnf install fish
Last metadata expiration check: 0:14:58 ago on Wed Jun 19 22:30:39 2024.
Error:
Problem: conflicting requests
- package fish-3.7.1-3.1.aarch64 from shells_fish_release_3 does not have a compatible architecture
- nothing provides /usr/libexec/platform-python needed by fish-3.7.1-3.1.aarch64 from shells_fish_release_3
- nothing provides ld-linux-aarch64.so.1()(64bit) needed by fish-3.7.1-3.1.aarch64 from shells_fish_release_3
- nothing provides ld-linux-aarch64.so.1(GLIBC_2.17)(64bit) needed by fish-3.7.1-3.1.aarch64 from shells_fish_release_3
- nothing provides libdl.so.2(GLIBC_2.17)(64bit) needed by fish-3.7.1-3.1.aarch64 from shells_fish_release_3
- nothing provides libm.so.6(GLIBC_2.17)(64bit) needed by fish-3.7.1-3.1.aarch64 from shells_fish_release_3
- nothing provides libpthread.so.0(GLIBC_2.17)(64bit) needed by fish-3.7.1-3.1.aarch64 from shells_fish_release_3
- nothing provides /usr/libexec/platform-python needed by fish-3.7.1-3.1.x86_64 from shells_fish_release_3
(try to add '--skip-broken' to skip uninstallable packages)
Não estou usando ARM/aarch64
então corri:
[root@ip-172-31-24-201 yum.repos.d]# dnf install fish --skip-broken
Last metadata expiration check: 0:01:27 ago on Wed Jun 19 23:02:14 2024.
Dependencies resolved.
Problem: cannot install the best candidate for the job
- nothing provides /usr/libexec/platform-python needed by fish-3.7.1-3.1.x86_64 from shells_fish_release_3
==================================================================================================================================================================================================================
Package Architecture Version Repository Size
==================================================================================================================================================================================================================
Skipping packages with broken dependencies:
fish x86_64 3.7.1-3.1 shells_fish_release_3 4.8 M
Transaction Summary
==================================================================================================================================================================================================================
Skip 1 Package
Nothing to do.
Complete!
Alguém sabe como consertar isso ou instalar /usr/libexec/platform-python
?
obrigado.
Amazon Linux não é CentOS, e é exatamente isso que está chamando sua atenção aqui.
Nada demais. Primeira pergunta, você deve se perguntar se uma distribuição Linux especificamente adaptada ao serviço de nuvem é realmente o que você deseja instalar em um shell específico (e um pouco esotérico, imho) voltado para o usuário. Parece-me surpreendente! Seria algo que eu teria na minha máquina de administração, não necessariamente nas instâncias EC2 administradas.
Supondo que sim, você tem certeza de que deseja isso: OK, então construa! Também não deve ser grande coisa.
Tudo que você precisa é de uma máquina Fedora (não acho que a ferramenta equivalente seja tão fácil de usar no próprio Amazon Linux, é realmente em todos os sentidos uma distro na qual você apenas implanta, e não trabalha, veja a discussão de "você realmente quer tanto sua concha favorita nisso?"); que pode ser uma máquina nativa, uma VM ou um contêiner (desde que esse contêiner tenha privilégios para gerar novos contêineres).
Nessa máquina fedora,
sudo dnf install fedpkg
obtenha as fontes do pacote viafedpkg clone fish
e simplesmente construa o pacote usandoÉ isso. Essa construção levou cerca de 4 minutos; você obtém arquivos .rpm em
results_fish/
, que podem ser copiados para um diretório em sua máquina Amazon Linux e instalados a partirdnf install ./*.rpm
desse diretório.