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()

(唯一の変更は、次の2行を追加することです。

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

)

おすすめ記事