ARM 플랫폼의 Fedora 22에서 dnf를 사용하여 패키지를 설치할 수 없습니다.

ARM 플랫폼의 Fedora 22에서 dnf를 사용하여 패키지를 설치할 수 없습니다.

GNURoot 애플리케이션을 사용하여 ARMv7 프로세서가 탑재된 Android 5.0 장치에 Fedora 22(rootfs 사용)를 설치했습니다. 이것은 잘 작동합니다. rootfs의 모든 명령은 정상적으로 실행됩니다. 그러나 dnf에 문제가 있습니다.

dnf clean alldnf update명령이 제대로 작동합니다 . 을 실행하면 dnf search <package name>제대로 작동합니다. 정확한 검색 결과를 얻었습니다. 을 실행하면 dnf info <package name>제대로 작동합니다. 그러나 실행하면 dnf install <package name>다음과 같은 오류가 발생합니다.

Last metadata expiration check performed 1:52:54 ago on Sat Dec 26 11:05:25 2015.
No package <package name> available.
Error: Unable to find a match.

dnf 검색 결과에서 패키지를 사용할 수 있는 경우에도 모든 패키지에 대해 이 오류가 발생합니다.

한 가지 예:

> less
bash: less: command not found

> dnf search less
Last metadata expiration check performed 1:44:08 ago on Sat Dec 26 11:05:25 2015.
================== N/S Matched: less ===================
less.armv7hl : A text file browser similar to more, but
             : better
bless-doc.armv7hl : Bless user manual
python-lesscpy.noarch : Lesscss compiler
python3-lesscpy.noarch : Lesscss compiler
..
..
..

> dnf info less
Last metadata expiration check performed 1:44:58 ago on Sat Dec 26 11:05:25 2015.
Available Packages
Name        : less
Arch        : armv7hl
Epoch       : 0
Version     : 481
Release     : 1.fc22
Size        : 143 k
Repo        : updates
Summary     : A text file browser similar to more, but
            : better
URL         : http://www.greenwoodsoftware.com/less/
License     : GPLv3+ or BSD
Description : The less utility is a text file browser
            : that resembles more, but has more
            : capabilities.  Less allows you to move
            : backwards in the file as well as forwards.
            :  Since less doesn't have to read the
            : entire input file before it starts, less
            : starts up more quickly than text editors
            : (for example, vi).
            :
            : You should install less because it is a
            : basic utility for viewing text files, and
            : you'll use it frequently.

> dnf install less
Last metadata expiration check performed 1:50:23 ago on Sat Dec 26 11:05:25 2015.
No package less available.
Error: Unable to find a match.

> dnf install less.armv7hl
Last metadata expiration check performed 1:52:54 ago on Sat Dec 26 11:05:25 2015.
No package less.armv7hl available.
Error: Unable to find a match.

> dnf install less.armv7hl -v                           
cachedir: /var/cache/dnf
Loaded plugins: migrate
DNF version: 1.1.4
repo: using cache for: fedora
not found deltainfo for: Fedora 22 - armhfp
not found updateinfo for: Fedora 22 - armhfp
repo: using cache for: updates
fedora: using metadata from Sat May 23 09:54:23 2015.
updates: using metadata from Tue Dec 22 00:53:59 2015.
Last metadata expiration check performed 3:51:50 ago on Sat Dec 26 11:05:25 2015.
No package less.armv7hl available.
Error: Unable to find a match.

> dnf search less.armv7hl
Last metadata expiration check performed 0:18:04 ago on Sat Dec 26 15:27:49 2015.
Error: No matches found.

이 오류를 어떻게 해결할 수 있나요?

도움을 주셔서 미리 감사드립니다.

답변1

arm chroot에서 이 파일을 엽니다.

 /usr/lib/python3.5/site-packages/dnf/conf/substitutions.py

다음과 같이 기능을 변경합니다 __init__(효과적으로 작업 아치 이름을 하드코딩함).

def __init__(self):
    super(Substitutions, self).__init__()
    arch = hawkey.detect_arch()
    self['arch'] = arch
    self['arch'] = 'armv7hl'
    self['basearch'] = dnf.rpm.basearch(arch)
    self['basearch'] = 'armhfp'
    self._update_from_env()

(유일한 변경 사항은 다음 두 줄을 추가하는 것입니다.

    self['arch'] = 'armv7hl'
    self['basearch'] = 'armhfp'

)

관련 정보