ubuntuusers.de

Microsoft Surface DEB-Paket-Repository im DEB822 Format hinzufügen

Status: Ungelöst | Ubuntu-Version: Kubuntu 25.10 (Questing Quokka)
Antworten |

trollsportverein

Avatar von trollsportverein

Anmeldungsdatum:
21. Oktober 2010

Beiträge: 6442

Vorneweg: ich habe gar kein Microsoft Surface Tablet.

Man beachte auch:

Hinweis!

Zusätzliche Fremdquellen können das System gefährden.

Das Für und Wider muss selbst abgewägt werden. Ohne Microsoft Surface Tablet ist das einfach, man braucht es nicht.

Für diejenigen, die aber ein Microsoft Tablet haben, und gerne Linux darauf nutzen möchten, dort gibt es ein Projekt auf Github, um Microsoft Surface Tablets für Linux (hoffentlich) nutzbar zu machen:

Falls alte Einträge wie:

/etc/apt/sources.list.d/linux-surface.list 

... noch vorhanden sein sollten, dann diese löschen:

sudo rm -iv /etc/apt/sources.list.d/*linux-surface.list*

Abfrage muss mit "y" beantwortet werden, um die Löschung dann auch durchzuführen.

Nun den microsoft-surface-apt-repository-install-helper.sh erstellen.

Im Terminal mit Nano:

nano microsoft-surface-apt-repository-install-helper.sh

Im sich öffnenden Nano Editor dann per Copy & Paste folgenden Inhalt einfügen:

#!/usr/bin/env bash

#-----------------------------------------------------------
# Ubuntu 24.04, 25.04 and 25.04 DEB822 little helper script
# Microsoft Surface repository
#-----------------------------------------------------------

RELEASE_VERSION=$(lsb_release -cs 2>/dev/null)
DISTRIBUTION=$(lsb_release -id | awk '/Distributor/{ print $NF }')

printf "\n \033[45m\033[1;36m==> Running on $DISTRIBUTION $RELEASE_VERSION \033[0m\033[42m\033[1;36m  ==> ... \033[0m \n \n" && \
[ $DISTRIBUTION = Ubuntu ] && \
[ $RELEASE_VERSION = noble ] || \
[ $RELEASE_VERSION = plucky ] || \
[ $RELEASE_VERSION = questing ] && \
echo "$RELEASE_VERSION good". || \
printf "\n \033[41m\033[1;36m==> Sorry, not for $DISTRIBUTION $RELEASE_VERSION.\033[0m \n \n" && \
[ $DISTRIBUTION = Ubuntu ] && \
[ $RELEASE_VERSION = noble ] || \
[ $RELEASE_VERSION = plucky ] || \
[ $RELEASE_VERSION = questing ] || \

(printf "\n \033[41m\033[1;36m==> If you want to proceed, despite the negative release version test, type \"Yes\". \033[0m\033[42m\033[1;36m  ==> ... \033[0m \n \n"
read -e -p "
[y/N] " YN
[[ $YN == "Yes" ]] && \
(echo "try it.")) || exit

printf "\n \033[45m\033[1;36m==> Test sudo. \033[0m\033[42m\033[1;36m  ==> ... \033[0m \n \n" && \
sudo echo "sudo Test, OK." && \

printf "\n \033[43m\033[1;36m==> Microsoft Surface repository add?  \033[0m\033[41m\033[1;36m  ==> ?  \033[0m \n" && \
echo "" && \
echo "Only if you realy like to add Microsoft Surface repository, type ==> Yes <== for confirmation." && \
read -e -p "
[y/N] " YN
[[ $YN == "Yes" ]] && \

(printf "\n \033[45m\033[1;36m==> Make linux-surface.sources entry. \033[0m\033[42m\033[1;36m  ==> ... \033[0m \n \n" && \
echo "X-Repolib-Name: surfacelinux.com
Enabled: yes
Types: deb
URIs: https://pkg.surfacelinux.com/debian
Suites: release
Components: main
Architectures: amd64
Signed-By:
$(wget -qO /tmp/surface.asc https://raw.githubusercontent.com/linux-surface/linux-surface/master/pkg/keys/surface.asc && \
cat /tmp/surface.asc | \
sed -e 's/^$/./' -e 's/^/ /')" | \
sudo tee /etc/apt/sources.list.d/linux-surface.sources > /dev/null && \
sudo chattr -i /etc/apt/sources.list.d/linux-surface.sources && \
rm -fv /tmp/surface.asc && \
printf "\n \033[45m\033[1;36m==> Set APT-Pinning. \033[0m\033[42m\033[1;36m  ==> ... \033[0m \n \n" && \
echo "Surface Package Priority:"
echo '
Package: *
Pin: origin pkg.surfacelinux.com
Pin-Priority: 500
' | sudo tee /etc/apt/preferences.d/linux-surface.pref && \
sudo apt-get update && \
printf "\n \033[45m\033[1;36m==> Microsoft Surface repository active now. \033[0m\033[42m\033[1;36m  ==> Done.\033[0m \n \n" || \
printf "\n \033[41m\033[1;36m==> Sorry something failed.\033[0m \n \n")

#-----------------------------------------------------------
# Microsoft Surface repositor remove
#-----------------------------------------------------------

printf "\n \033[43m\033[1;36m==> Microsoft Surface repository REMOVE?  \033[0m\033[41m\033[1;36m  ==> ?  \033[0m \n" && \
echo "" && \
echo "Only if you realy like to remove, type ==> Yes <== for confirmation." && \
read -e -p "
[y/N] " YN
[[ $YN == "Yes" ]] && \
(sudo rm -v /etc/apt/sources.list.d/linux-surface.sources && \
sudo rm -v /etc/apt/preferences.d/linux-surface.pref && \
printf "\n \033[45m\033[1;36m==> Microsoft Surface repository removed. \033[0m\033[42m\033[1;36m  ==> Done.\033[0m \n \n" || \
echo "" && \
[ -f /etc/apt/sources.list.d/linux-surface.sources ] && \
echo "Not removed.")

Datei microsoft-surface-apt-repository-install-helper.sh speichern → Strg + O , und dann schließen → Strg + X . Dann ausführbar machen:

chmod 755 microsoft-surface-apt-repository-install-helper.sh

Nun kann der microsoft-surface-apt-repository-install-helper.sh ausgeführt werden:

./microsoft-surface-apt-repository-install-helper.sh 

Die Abfragen sind entsprechend zu beantworten. Zum Schluss kommt auch noch eine Abfrage, ob man das Repository wieder entfernen möchte. Es bleibt erhalten, wenn einfach nur die Entertaste gedrückt wird.

Bei mir wird dann angezeigt, das dann damit die DEB-Pakete für Microsoft Tablets über das pkg.surfacelinux.com Repository verfügbar sind:

apt-cache madison linux-image-surface linux-headers-surface libwacom-surface iptsd

linux-image-surface | 6.18.7-surface-1 | https://pkg.surfacelinux.com/debian release/main amd64 Packages
linux-headers-surface | 6.18.7-surface-1 | https://pkg.surfacelinux.com/debian release/main amd64 Packages
libwacom-surface |   2.17.0-1 | https://pkg.surfacelinux.com/debian release/main amd64 Packages
iptsd |    3.1.0-1 | https://pkg.surfacelinux.com/debian release/main amd64 Packages

Sollte es sich ergeben, dass die Priorität der DEB-Pakete aus diesem Repository höher als normal sein müssen, oder niedriger, dann kann die Pin-Priority in der Datei:

/etc/apt/preferences.d/linux-surface.pref

... geändert werden. 500 ist Standardpriorität. Für weitere Information siehe im Wiki:

schwarzheit Team-Icon

Supporter
Avatar von schwarzheit

Anmeldungsdatum:
31. Dezember 2007

Beiträge: 9284

Warum nicht einfach die .list in .source mit apt modernize-sources umschreiben lassen?

trollsportverein

(Themenstarter)
Avatar von trollsportverein

Anmeldungsdatum:
21. Oktober 2010

Beiträge: 6442

In welchen Releases ist das modernize-sources Feature enthalten? Auf meinem Kubuntu mit dem APT aus dem Salsa GIT immer wieder frisch selbst compilert ist es verfügbar. Aber nicht alle frickeln so viel. 😉

Davon abgesehen, finde ich es sexy den Schlüssel in den Repository Eintrag zu integieren, wie es auch die Launchpad Repositories für Ubuntu machen.

schwarzheit Team-Icon

Supporter
Avatar von schwarzheit

Anmeldungsdatum:
31. Dezember 2007

Beiträge: 9284

trollsportverein schrieb:

In welchen Releases ist das modernize-sources Feature enthalten?

Das hab ich so genau grad nicht aufm Schirm. Aber mitten inner Nacht muss ich das auch nicht mehr recherchieren. 😀

von.wert

Anmeldungsdatum:
23. Dezember 2020

Beiträge: 14705

trollsportverein schrieb:

In welchen Releases ist das modernize-sources Feature enthalten?

modernize-sources ist in apt 3.0 hinzugekommen, also erst in Ubuntu 25.04.

von.wert

Anmeldungsdatum:
23. Dezember 2020

Beiträge: 14705

trollsportverein schrieb:

den Schlüssel in den Repository Eintrag zu integieren

Wenn Signed-By: in .list enthalten ist, wird das mit "apt modernize-sources" übernommen. Vorhin mit linux-surface.list und apt 3.0.3 durchgespielt.

trollsportverein

(Themenstarter)
Avatar von trollsportverein

Anmeldungsdatum:
21. Oktober 2010

Beiträge: 6442

@von.wert: mit Schlüssel in den Repository Eintrag zu integieren, wie es auch die Launchpad Repositories für Ubuntu machen, meine ich das so:

X-Repolib-Name: surfacelinux.com
Enabled: yes
Types: deb
URIs: https://pkg.surfacelinux.com/debian
Suites: release
Components: main
Architectures: amd64
Signed-By:
 -----BEGIN PGP PUBLIC KEY BLOCK-----
 .
 mQINBF4mFh4BEADLu7iRoKyoFSCt35hCzl4w9TmtTIaSB7oHsOAlU+PizbSGrnmb
 svnu5/kEXCBu2L/vk6rKzoIbgBDOtNE+6WnDOAhzMcQIQ73laIDPxJA5qO/wgaeT
 ifhO/JI62Lw48hDRpbYNKqZVabnJ5UZIoKRO13PjSQKl55hexuhdQhSi3nRl6vUE
 uQLBVftZP2yn1oep7/weaRhabKHDpjXNkdA8m8lZhD7J95IuaS0COzpwhxUJtCW0
 UE5qRxeOm6QT4yKRDq6PyAvXKHSORdKUxB492BOC7Gb6TABTLgV7mZnZvbuKHf+r
 gMAuBcxodvB83O2UgaKtwX9JK8u6RkR9oo0pjhQWt/f4fej3uIxBgJW3ksZrexao
 fCwT9p7XYsDZKm8yZO1lelZCg+nTWHEcc4G7tp+PxQxiOxXg2gkLdP7dOrOlynNW
 BH6+7cPqhe1w5PonYOSQBae1kwFyI5pE+mxCeOUMWdyu9yWVPbsidXUnz3qH37Hs
 0MTvn6s9CYTGnng/+JD+at2PFQTvqkh+9wIo0WKu9g+wUvyo5Ncp5B2FL8jsgTmR
 HfKmNzoFNBXtpMJ5qfSEk9YqIGmGb3/pd3baePuDE8V9f3jvhD80Unn/LYQPkePi
 UIzYRamoYb+DK/9kYncXO4vdsgwsSds+oSuYpjsYzmfdMC53BixbjF0T5wARAQAB
 tA1saW51eC1zdXJmYWNliQJOBBMBCAA4FiEEh976SrlKmaTIwxElVsRkuqxCFFMF
 Al4mFh4CGwMFCwkIBwIGFQoJCAsCBBYCAwECHgECF4AACgkQVsRkuqxCFFOw2xAA
 kc4iDI4zOY3AVwdJ0/Cg6z7XCOdXBZJ4gDtAuHhi9h7UiOzgw6Ey4rvNDHJ64Npg
 gPtsG6jocZurOreldrZlc+egPx18wVI8ouuaeiKCO+q7wjs1thxH9I323r4V96ye
 7jJ02p3a8nCs1fDjdn9SlP7Ig9axfOdEI5fBhyT1B2RstGEEGqN3ZmAOt8rLSgXd
 PQi3VdrsEI4ljOTg6ygCBeNUKH+jJ48QRk7SsgX5rb3ZCF0c6sA4buy0Y4vyVW8S
 Qg5VkPz8Oz4+Zm3W+CXawa4LVtzz5twFwWBjhaSnLsRXBZXAu1QU5aIcwsfeQLqX
 X4NGtqIa/HV6lw1rA97qmVBq4PNY1QIMZ9xQSoSHDJ1aONhDON5jW0VK7iJr+g+A
 0ot42X7OTeYi/lZL6aWVY/DG480eh07oxJyMt/BVoVqbruYsIDluwhP5YEGn9iNr
 +V+Kfe7chZzyeqBDjewfHP9FlpNxNfdMa6Xr5nFFrec+wXx5y34/p6WXlukpjy/D
 9i5fNCKAUxS74k41C7x2//jF/vFoMJhtDwIwYszp1TS9qfAnbygWZmHBAiB8FjBM
 lMmlRcuTyb8bPuhur0CbhtLr+ZOA3yzb54YKgeNrJXU+L/mOLA/Axr6wKppcAcmm
 xCEs7a07XWmNPiKLn5KQqjBdRYCEdIaBuRyay36ynAi5Ag0EXiYWHgEQALFXP2NX
 46+2t4W82CClZ8tvw+4xLBXHbq4/ejwIJEdUtk/lRUUXEhERELxV/RIOP7R7PoKM
 DKVcXAoOSx19ei6SkKBFKJlG8ocavbRXaScc8rtO1iotJggpq79X+t8u6N2SkxOQ
 3ynuxS7aI1tOKChMwF9lgcvcG7YpXSLsZLwYgX/msUY0C4Qz3Rsb/74jZuKFeSwl
 RcY1fix17+wnoldKlQlcK6sOLUtQ39fcUpd9ktEHQ+s1BhynLvyfEHDXZkZulUpr
 63OSjP7gvN6PsF3iShu4fcpB6yWiiQQyCgKq5SlnE0glKbZwfbRWZ2zwYr7NbfPK
 3yObvGqBtpIjWguS0mM80d3tkieHlmvqTljx5LiPBhosuCREdnH6GZ5Oa6n6T7m1
 7996XphxcaER9i0fkMB1HfU7ECJjiIOXUVkgUt9rP7F70/EbzsZuBF+NzFoui0ma
 u4UcW1f+4QnEldn94BOOGOtV/mqvk7kk/LXplPDgELsZYtpWHNht+9wOsZaT8dQU
 sOsI1lKB83hsr3tkgyiWXRcP3561hJG1Vhqx19IKFKKmy3xUemonV2dshP5Kzqd3
 W/FwLUuGWsI6fK0x7ak8G+Hy+AMKMcXblM/oSuMbgu3f/SXKnfvKurIc50QZQWky
 97lWjwX6Ek8f1YvkSLuz37dRCEOOpp6UR6S7ABEBAAGJAjYEGAEIACAWIQSH3vpK
 uUqZpMjDESVWxGS6rEIUUwUCXiYWHgIbDAAKCRBWxGS6rEIUU9OrD/9cNF7W1Lip
 nH/vet4X1Z2mm1fN5iQ/r+jOyLmf9L6LXtAfjDla7oU+X0Kj8FxOZetaRWJfx+vb
 yscCNHW6z8s6ai9HSa6D81g8xOmVya/ULx19WcDNgsyEpBiv6SKkm45GN/lByneX
 paBhrOi9DWvz/c22GW69I7+DtLhVjJvGhkAfYF/RIn15KEsgfNk+/FBNK1dnmhHO
 Vt2Szf33xkGv08SRgi/0dULPygGLXgrptrkzyfV7oMNhIjvO74ZF+hQt9YeFG1Yq
 MqqmWIjnau7v8lvp7vIVeZvqO16e+swhcU2puaXagrKrB97mumQ68TC2FBkkwvM7
 d15BqRKqaAv7WwBxXE/SGUywNip9oaEasho9odMXlf/XHKWh2XmCkccfFkejFemr
 boSqNLs6mNPeo0k9msZl3ARLO8/mMPnX1WW6wZ8ApH3GE6/goZz44qZuomO+eBqW
 xE5BNzuBLLJkg7rq8OoT1bMzoKd90+gZjJZzj+qM5bnaU81gGOtlA4s6cbRk5zu8
 9iRRZoI5YBQAVzRJ49xOu0CGhzGfmrG/y28qxLHQgaovVjVbZgdjUdbVYJ3n3Iro
 JdpouBPRoXr7cKjV74mCG2VX/LPSmRM4JizyZg2wKtIop9u+fcm8yxkTkOlGGTjL
 JcYSQaEgtpWZ3OhD14QVf5museDuNdfluQ==
 =06Jw
 -----END PGP PUBLIC KEY BLOCK-----

Ohne das eine extra Schlüssel-Datei im System übrigbleibt, wenn man das Repository wieder aus dem System entfernt:

Wer überprüft seine Schlüsselsammlung regelmäßig auf übrig gebliebene Schlüssel und räumt dann auch auf? Deswegen finde ich direktes integrieren vom Schlüssel in den Repository Eintrag, wie es Launchpad macht, sexy. Man spart sich die Schlüsselsammlung aufzuräumen. Wenn der jeweilige Repository Eintrag entfernt wird, dann ist auch der Schlüssel mit entfernt.

von.wert

Anmeldungsdatum:
23. Dezember 2020

Beiträge: 14705

trollsportverein schrieb:

mit Schlüssel in den Repository Eintrag zu integieren

Na, gut. Aber Keys können sich auch ändern, Google ist so ein Beispiel, Signal wohl auch, wie man hier desöfteren liest. Damit ist's dann mehr Aufwand.

Wer überprüft seine Schlüsselsammlung regelmäßig auf übrig gebliebene Schlüssel

Ich seh schon ab und an mal mit kgpg 'rein, mehr so aus Interesse, das ist freilich recht übersichtlich. 😉

trollsportverein

(Themenstarter)
Avatar von trollsportverein

Anmeldungsdatum:
21. Oktober 2010

Beiträge: 6442

von.wert schrieb:

trollsportverein schrieb:

mit Schlüssel in den Repository Eintrag zu integieren

Na, gut. Aber Keys können sich auch ändern, Google ist so ein Beispiel, Signal wohl auch, wie man hier desöfteren liest. Damit ist's dann mehr Aufwand.

Eigentlich nicht wirklich aufwändig, denn wenn die Bezugsquelle des Schlüssels gleich bleibt, es also bei:

https://raw.githubusercontent.com/linux-surface/linux-surface/master/pkg/keys/surface.asc

... bleibt, dann einfach das Skript nochmals laufen lassen, dann gibts den jeweils frischen Schlüssel.

Antworten |