Update Probleme mit "dotnet" (selbst mit update direkt via git)

Hallo.
Ich habe wieder ein Problem mit den Updates.
Auch hier wieder dotnet

Da ich vor kurzem mit der geschätzten Hilfe in diesem Thread ein ähnliches Problem gelöst bekommen habe, habe ich das dort gelernte angewendet.
https://forum.manjaro.org/t/update-aur-dotnet-update-schlaufe/173452/6

Aber selbst nach dem ich das angwendet habe bleibt das Probelem bestehen

  1. Direkt via Git
  2. Versuch Update via pamac
  3. Versuche Update via pacman
  4. Reboot
  5. Versuch Update via pamac
  6. Versuche Update via pacman
  7. Nach wie vor die Meldung: Kann Abhängigkeiten nicht erfüllen:
  • das Entfernen von dotnet-runtime-bin verletzt Abhängigkeit ‘dotnet-runtime-bin’ benötigt von aspnet-runtime-bin

Mir macht es den Eindruck als würde Manjaro bzw die “Updater” nicht erkennen das schon via git die neue version installiert ist.

In wie weit wird “dotnet” überhaupt benöntigt?
Was benötigt “dotnet”? wine? lutris? steam?
Kann man auf “dotnet” verzichten?
Kann man das Problem dauerhaft lösen?

Der Ablauf im Detail

git clone https://aur.archlinux.org/dotnet-core-bin                                                                                                                                                             
Klone nach 'dotnet-core-bin'...
Hinweis: Als Name für den initialen Branch wurde 'master' benutzt. Dieser
Hinweis: Standard-Branchname kann sich ändern. Um den Namen des initialen Branches
Hinweis: zu konfigurieren, der in allen neuen Repositories verwendet werden soll und
Hinweis: um diese Warnung zu unterdrücken, führen Sie aus:
Hinweis:
Hinweis:        git config --global init.defaultBranch <Name>
Hinweis:
Hinweis: Häufig gewählte Namen statt 'master' sind 'main', 'trunk' und
Hinweis: 'development'. Der gerade erstellte Branch kann mit diesem Befehl
Hinweis: umbenannt werden:
Hinweis:
Hinweis:        git branch -m <Name>
remote: Enumerating objects: 388, done.
remote: Counting objects: 100% (388/388), done.
remote: Compressing objects: 100% (247/247), done.
remote: Total 388 (delta 149), reused 378 (delta 141), pack-reused 0 (from 0)
Empfange Objekte: 100% (388/388), 144.83 KiB | 1.98 MiB/s, fertig.
Löse Unterschiede auf: 100% (149/149), fertig.
cd dotnet-core-bin                                                                                                                                                                                              
~/dotnet-core-bin  master makepkg -i                                                                                                                                                                         
==> Erstelle Paket: dotnet-core-bin 9.0.1.sdk102-2 (Di 04 Feb 2025 21:32:19 CET)
==> Prüfe Laufzeit-Abhängigkeiten...
==> Prüfe Buildtime-Abhängigkeiten...
==> Empfange Quellen...
  -> dotnet.sh gefunden
  -> Lade dotnet-sdk-9.0.102-linux-x64.tar.gz herunter...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  200M  100  200M    0     0  11.9M      0  0:00:16  0:00:16 --:--:-- 12.0M
==> Überprüfe source Dateien mit sha512sums...
    dotnet.sh ... Erfolg
==> Überprüfe source_x86_64 Dateien mit sha512sums...
    dotnet-sdk-9.0.102-linux-x64.tar.gz ... Erfolg
==> Entpacke Quellen...
  -> Entpacke dotnet-sdk-9.0.102-linux-x64.tar.gz mit bsdtar
==> Betrete fakeroot Umgebung...
==> Beginne package_dotnet-host-bin()...
==> Säubere Installation...
  -> Entferne libtool Dateien...
  -> Bereinige ungewollte Dateien...
  -> Entferne unnötige Symbole aus Binär-Dateien und Bibliotheken...
  -> Komprimiere Man-Pages und Info-Seiten...
libfakeroot internal error: payload not recognized!
==> Prüfe auf Paketierungsprobleme...
==> Erstelle Paket "dotnet-host-bin"...
  -> Erstelle .PKGINFO Datei...
  -> Erstelle .BUILDINFO Datei...
  -> Erstelle .MTREE-Datei...
  -> Komprimiere Paket... 
==> Beginne package_aspnet-runtime-bin()...
==> Säubere Installation...
  -> Entferne libtool Dateien...
  -> Bereinige ungewollte Dateien...
  -> Entferne unnötige Symbole aus Binär-Dateien und Bibliotheken...
  -> Komprimiere Man-Pages und Info-Seiten...
==> Prüfe auf Paketierungsprobleme...
==> Erstelle Paket "aspnet-runtime-bin"...
  -> Erstelle .PKGINFO Datei...
  -> Erstelle .BUILDINFO Datei...
  -> Erstelle .MTREE-Datei...
  -> Komprimiere Paket... 
==> Beginne package_dotnet-runtime-bin()...
==> Säubere Installation...
  -> Entferne libtool Dateien...
  -> Bereinige ungewollte Dateien...
  -> Entferne unnötige Symbole aus Binär-Dateien und Bibliotheken...
  -> Komprimiere Man-Pages und Info-Seiten...
==> Prüfe auf Paketierungsprobleme...
==> Erstelle Paket "dotnet-runtime-bin"...
  -> Erstelle .PKGINFO Datei...
  -> Erstelle .BUILDINFO Datei...
  -> Erstelle .MTREE-Datei...
  -> Komprimiere Paket... 
==> Beginne package_dotnet-sdk-bin()...
==> Säubere Installation...
  -> Entferne libtool Dateien...
  -> Bereinige ungewollte Dateien...
  -> Entferne unnötige Symbole aus Binär-Dateien und Bibliotheken...
  -> Komprimiere Man-Pages und Info-Seiten...
==> Prüfe auf Paketierungsprobleme...
==> Erstelle Paket "dotnet-sdk-bin"...
  -> Erstelle .PKGINFO Datei...
  -> Erstelle .BUILDINFO Datei...
  -> Erstelle .MTREE-Datei...
  -> Komprimiere Paket... 
==> Beginne package_netstandard-targeting-pack-bin()...
==> Säubere Installation...
  -> Entferne libtool Dateien...
  -> Bereinige ungewollte Dateien...
  -> Entferne unnötige Symbole aus Binär-Dateien und Bibliotheken...
  -> Komprimiere Man-Pages und Info-Seiten...
==> Prüfe auf Paketierungsprobleme...
==> Erstelle Paket "netstandard-targeting-pack-bin"...
  -> Erstelle .PKGINFO Datei...
  -> Erstelle .BUILDINFO Datei...
  -> Erstelle .MTREE-Datei...
  -> Komprimiere Paket... 
==> Beginne package_dotnet-targeting-pack-bin()...
==> Säubere Installation...
  -> Entferne libtool Dateien...
  -> Bereinige ungewollte Dateien...
  -> Entferne unnötige Symbole aus Binär-Dateien und Bibliotheken...
  -> Komprimiere Man-Pages und Info-Seiten...
==> Prüfe auf Paketierungsprobleme...
==> Erstelle Paket "dotnet-targeting-pack-bin"...
  -> Erstelle .PKGINFO Datei...
  -> Erstelle .BUILDINFO Datei...
  -> Erstelle .MTREE-Datei...
  -> Komprimiere Paket... 
==> Beginne package_aspnet-targeting-pack-bin()...
==> Säubere Installation...
  -> Entferne libtool Dateien...
  -> Bereinige ungewollte Dateien...
  -> Entferne unnötige Symbole aus Binär-Dateien und Bibliotheken...
  -> Komprimiere Man-Pages und Info-Seiten...
==> Prüfe auf Paketierungsprobleme...
==> Erstelle Paket "aspnet-targeting-pack-bin"...
  -> Erstelle .PKGINFO Datei...
  -> Erstelle .BUILDINFO Datei...
  -> Erstelle .MTREE-Datei...
  -> Komprimiere Paket... 
==> Verlasse fakeroot Umgebung.
==> Beendete Erstellung: dotnet-core-bin 9.0.1.sdk102-2 (Di 04 Feb 2025 21:34:13 CET)
==> Installiere Paketgruppe dotnet-core-bin mit pacman -U...
[sudo] Passwort für miho: 
Pakete werden geladen …
Warnung: dotnet-host-bin-9.0.1.sdk102-2 ist aktuell -- Reinstalliere
Warnung: aspnet-runtime-bin-9.0.1.sdk102-2 ist aktuell -- Reinstalliere
Warnung: dotnet-runtime-bin-9.0.1.sdk102-2 ist aktuell -- Reinstalliere
Warnung: dotnet-sdk-bin-9.0.1.sdk102-2 ist aktuell -- Reinstalliere
Warnung: netstandard-targeting-pack-bin-9.0.1.sdk102-2 ist aktuell -- Reinstalliere
Warnung: dotnet-targeting-pack-bin-9.0.1.sdk102-2 ist aktuell -- Reinstalliere
Warnung: aspnet-targeting-pack-bin-9.0.1.sdk102-2 ist aktuell -- Reinstalliere
Abhängigkeiten werden aufgelöst …
Nach in Konflikt stehenden Paketen wird gesucht …

Pakete (7) aspnet-runtime-bin-9.0.1.sdk102-2  aspnet-targeting-pack-bin-9.0.1.sdk102-2  dotnet-host-bin-9.0.1.sdk102-2  dotnet-runtime-bin-9.0.1.sdk102-2  dotnet-sdk-bin-9.0.1.sdk102-2
           dotnet-targeting-pack-bin-9.0.1.sdk102-2  netstandard-targeting-pack-bin-9.0.1.sdk102-2

Gesamtgröße der installierten Pakete:  543,21 MiB
Größendifferenz der Aktualisierung:      0,00 MiB

:: Installation fortsetzen? [J/n] j                                
(7/7) Schlüssel im Schlüsselbund werden geprüft                                                                                        [##################################################################################] 100%
(7/7) Paket-Integrität wird überprüft                                                                                                  [##################################################################################] 100%
(7/7) Paket-Dateien werden geladen                                                                                                     [##################################################################################] 100%
(7/7) Auf Dateikonflikte wird geprüft                                                                                                  [##################################################################################] 100%
(7/7) Verfügbarer Festplattenspeicher wird ermittelt                                                                                   [##################################################################################] 100%
:: Paketänderungen werden verarbeitet …
(1/7) Reinstalliert wird dotnet-host-bin                                                                                               [##################################################################################] 100%
(2/7) Reinstalliert wird dotnet-runtime-bin                                                                                            [##################################################################################] 100%
(3/7) Reinstalliert wird aspnet-runtime-bin                                                                                            [##################################################################################] 100%
(4/7) Reinstalliert wird netstandard-targeting-pack-bin                                                                                [##################################################################################] 100%
(5/7) Reinstalliert wird dotnet-targeting-pack-bin                                                                                     [##################################################################################] 100%
(6/7) Reinstalliert wird aspnet-targeting-pack-bin                                                                                     [##################################################################################] 100%
(7/7) Reinstalliert wird dotnet-sdk-bin                                                                                                [##################################################################################] 100%
:: Post-transaction-Hooks werden gestartet …
(1/2) Arming ConditionNeedsUpdate...
(2/2) Refreshing PackageKit...

Versuch mit: pamac

pamac update                                                                                                                                                                                          
Vorbereitung...
==== AUTHENTICATING FOR org.manjaro.pamac.commit ====
Authentifizierung wird zur Installation, Aktualisierung oder Entfernung von Paketen benötigt
Authenticating as: miho
Password: 
==== AUTHENTICATION COMPLETE ====
Synchronisiere Paketdatenbanken...
Aktualisierung von AUR...                                                                                                                                                                                                       
Überprüfe python-future Abhängigkeiten...                                                                                                                                                                                       
Abhängigkeiten werden aufgelöst...
Interne Konflikte werden überprüft...
Fehler: Vorgang konnte nicht erfolgreich vorbereitet werden:
Kann Abhängigkeiten nicht erfüllen:
- das Entfernen von dotnet-runtime-bin verletzt Abhängigkeit 'dotnet-runtime-bin' benötigt von aspnet-runtime-bin



Build-Dateien bearbeiten : [e] 
Transaktion anwenden ? [e/j/N] j

Vorgang abgebrochen.

Versuch mit pacman:

pacman -Syyu                                                                                                                                                                                                    
Fehler: Sie benötigen Root-Rechte, um diese Operation auszuführen.
sudo pacman -Syyu                                                                                                                                                                                             
[sudo] Passwort für miho: 
:: Paketdatenbanken werden synchronisiert …
 core                                                                                                      138,5 KiB   757 KiB/s 00:00 [##################################################################################] 100%
 extra                                                                                                       8,1 MiB  6,69 MiB/s 00:01 [##################################################################################] 100%
 multilib                                                                                                  140,2 KiB  1311 KiB/s 00:00 [##################################################################################] 100%
:: Vollständige Systemaktualisierung wird gestartet …
Abhängigkeiten werden aufgelöst …
Nach in Konflikt stehenden Paketen wird gesucht …
:: dotnet-runtime-9.0.1.sdk102-1 and dotnet-runtime-bin-9.0.1.sdk102-2 are in conflict (dotnet-runtime-9.0). Remove dotnet-runtime-bin? [j/N] n
Fehler: Nicht auflösbare Paketkonflikte gefunden
Fehler: Vorgang konnte nicht vorbereitet werden (In Konflikt stehende Abhängigkeiten)
:: dotnet-runtime-9.0.1.sdk102-1 and dotnet-runtime-bin-9.0.1.sdk102-2 are in conflict

Your conflict comes from using the AUR custom script dotnet-core-bin.

The current version of dotnet in the repo is always the latest version when referenced without a version so the custom dotnet-core-bin will conflict with the repo packages providing the same files.

One way of avoiding these conflicts is by storing your custom packages in a custom repository local to your system.

Übersetzung

Ihr Konflikt kommt von der Verwendung des AUR Custom Script dotnet-core-bin.

Die aktuelle Version von Dotnet im Repo ist immer die neueste Version, wenn sie ohne Version referenziert wird, so dass die benutzerdefinierte dotnet-core-bin mit den Repo-Paketen kollidiert, die die gleichen Dateien bereitstellen.

Eine Möglichkeit, diese Konflikte zu vermeiden, besteht darin, Ihre benutzerdefinierten Pakete in einem benutzerdefinierten Repository lokal auf Ihrem System zu speichern.

custom repo

The easy way of maintaining such custom repo is as follows (assuming you are the only user)

Create a folder in your home custom-repo

mkdir ~/custom-repo

Copy the file /etc/makepkg.conf to your home as ~/.makepkg.conf

cp /etc/makepkg.conf ~/.makepkg.conf

Edit the file (~/.makepkg.conf) and locate the lines

#-- Destination: specify a fixed directory where all packages will be placed
#PKGDEST=/home/packages

Change the line #PKGDEST=

PKGDEST=/home/<username>/custom-repo

Save the file.
Navigate into the clone of the AUR script dotnet-core-bin and rebuild the package using makepkg

When you run makepkg the above change will place the resulting packages in the defined folder ~/custom-repo.

Enter the custom-repo folder and run

repo-add --new --remove /home/<username>/custom-repo/custom.db.tar.gz *.pkg.tar.zst

Edit your pacman.conf to include the repo

sudo nano /etc/pacman.conf

Scroll to the bottom of the file

# An example of a custom package repository.  See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs

Edit as follows

[custom]
SigLevel = Optional TrustAll
Server = file:///home/<username>/custom-repo

Save the changes.

Now you have a custom repo and you when you update your system you will only use your custom dotnet packages stored in your custom repo.

This is an all manual process - you can however find tools which will help you to maintain your custom repo.

One tool is repoctl which you can build from AUR.

Use pamac to search for other tools.

Übersetzung

Die einfache Art, solche benutzerdefinierten Repo beizubehalten, ist wie folgt (vorausgesetzt, Sie sind der einzige Benutzer)

Erstellen Sie einen Ordner in Ihrem Zuhause custom-repo

mkdir/custom-repo

Kopieren Sie die Datei /etc/makepkg.conf in Ihr Zuhause als -/.makepkg.conf

cp /etc/makepkg.conf

Bearbeiten Sie die Datei (-/.makepkg.conf) und suchen Sie die Zeilen

Reiseziel: Geben Sie ein festes Verzeichnis an, in dem alle Pakete platziert werden
“PKGDEST”/home/Paket

Wechseln Sie die Zeile PKGDEST=

PKGDEST=/home/username>/custom-repo

Speichern Sie die Datei.
Navigieren Sie in den Klon des AUR-Skripts dotnet-Core-bin und bauen Sie das Paket mit makepkg wieder auf

Wenn Sie makepkg ausführen, wird die resultierenden Pakete im definierten Ordner -/custom-repo platziert.

Geben Sie den Custom-Repo-Ordner ein und laufen Sie

repo-add --new --remove /home/<username>/custom-repo/custom.db.tar.gz *.pkg.tar.zst

Bearbeiten Sie Ihre pacman.conf um den Repo einzubinden

sudo nano /etc/pacman.conf

Scrollen Sie nach unten in der Datei

# An example of a custom package repository.  See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs

Bearbeiten wie folgt

[custom]
SigLevel = Optional TrustAll
Server = file:///home/<username>/custom-repo

Speichern Sie die Änderungen.

Jetzt haben Sie einen benutzerdefinierten Repo und Sie, wenn Sie Ihr System aktualisieren, verwenden Sie nur Ihre benutzerdefinierten Dotnet-Pakete, die in Ihrem benutzerdefinierten Repo gespeichert sind.

Dies ist ein rein manueller Prozess - Sie können jedoch Werkzeuge finden, die Ihnen helfen, Ihren benutzerdefinierten Repo zu halten.

Ein Werkzeug ist repoctl, das Sie von AUR aus bauen können.

Mit pamac suchen nach anderen Werkzeugen.

1 Like

Hallo Micha,
nichts gegen die gute Anleitung von @linux-aarhus, aber wenn ich das hier lese

stellt sich mir die Frage, brauchst Du tatsächlich dotnet, letztendlich ein Baustein für .NET = “eine Open-Source-Plattform zum Erstellen von Desktop-, Web- und Mobilanwendungen, die nativ auf jedem Betriebssystem ausgeführt werden können”
Wenn nicht benötigt, wäre es nicht einfacher, dies zu deinstallieren, angefangen bei aspnet-runtime-bin?
Ich habe das alles nur überflogen, kann also nicht garantieren, habe aber den starken Eindruck, dass du dir das ganze Zeug mal bei irgendeinem Versuch eingehandelt hast (“ich probiere mal foo aus”) und brauchst es nicht wirklich.

viele Grüsse gosia

konnte jetzt umständlich das dotnet zeugs mit der konsole und mit paketmanager entfernen.
ob nun aber auch die git version gelöscht ist kann ich gerade nicht nachvollziehen.

dafür meldet sich jetzt python mit ähnlichen problemen.

Aber zumindest schaut es danach aus, dass alle pakte die probleme machen über AUR kommen.

Werde wohl noch schauen müssen was ich sonst noch über AUR installiert habe.
Sollte wohl in zukunft auf AUR verzichten.

Vielleicht hilft dir das.

@Micha383

dotnet is a cross-platform language for developing applilcations; this means it can be used on Windows, Linux and macOS (x86-64 and ARM) sufficed the necessary runtime is installed.

applications based on dotnet requires a set of libraries to run; those is made available using -runtime packages; each major version has a runtime.

If you install a application created using dotnet, the application will depend on the runtime used when developing the application.

Based on your previous thread - you appear to have built dotnet-core-bin from AUR; the only reason you would need to do so, is for developing applications.

If you want to remove the packages you can use something like

sudo pacman -Rns $(pacman -Qqem | grep -e dotnet -e aspnet)

Übersetzung

dotnet ist eine plattformunabhängige Sprache zur Entwicklung von Tauschhandel; das heißt, es kann unter Windows, Linux und macOS verwendet werden, die die notwendige Laufzeit installiert wird.

Anwendungen, die auf Punktnet basieren, erfordern eine Reihe von Bibliotheken, die mit -runtime-Paketen zur Verfügung gestellt werden; jede Hauptversion hat eine Laufzeit.

Wenn Sie eine mit dotnet erstellte Anwendung installieren, hängt die Anwendung von der Laufzeit ab, die bei der Entwicklung der Anwendung verwendet wird.

Basierend auf Ihrem vorherigen Thread - Sie scheinen dotnet-Core-bin von AUR gebaut zu haben; der einzige Grund, warum Sie dies tun müssten, ist die Entwicklung von Anwendungen.

Wenn Sie die Pakete entfernen möchten, können Sie so etwas wie

sudo pacman -Rns $(pacman -Qqem | grep -e dotnet -e aspnet)