installdependencies.sh: add fallback to libssl-dev / libicu-dev for Debian 14+
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 72/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- bash, debian
- Ambito
- devops, operating-systems
Direzione di ricerca
Inizia con src/Misc/layoutbin/installdependencies.sh, leggendo il ramo basato su Debian e la funzione apt_get_with_fallbacks intorno alle righe indicate. Riproduci l’installazione delle dipendenze su Debian 14, quindi verifica che il fallback finale gestisca libssl-dev e libicu-dev e che lo script venga completato correttamente.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Describe the bug
src/Misc/layoutbin/installdependencies.sh uses hardcoded, versioned package names for OpenSSL and ICU libraries:
- OpenSSL: tries
libssl3t64$→libssl3$→libssl1.1$→libssl1.0.2$→libssl1.0.0$(line 105) - ICU: tries
libicu80→libicu79→ … →libicu52(line 113)
On Debian 14 (and potentially other newer distributions), none of these versioned packages may exist. The script has no fallback to the unversioned development packages (libssl-dev, libicu-dev) which are available on these systems.
When all fallbacks are exhausted, the script exits with:
Can't install dotnet core dependencies.
This blocks self-hosted runner setup on Debian 14.
To Reproduce
- Set up a Debian 14 (or newer) system.
- Run
sudo ./src/Misc/layoutbin/installdependencies.sh - Observe failure — none of the versioned
libssl*orlibicu*packages can be found byapt-get.
Expected behavior
The script should fall back to the development packages (libssl-dev, libicu-dev) when none of the versioned runtime packages are available. The -dev packages are the canonical unversioned names and are available across all Debian/Ubuntu versions.
Alternatively (or additionally), the script could use apt-cache search / apt list to dynamically discover the available library package names at runtime instead of maintaining a hardcoded list.
Proposed Fix
In the Debian-based branch (after line 69), add a final fallback that tries the -dev packages before failing:
# After the existing fallback chain fails, try -dev packages
apt_get_with_fallbacks libssl-dev
if [ $? -ne 0 ]; then
echo "'$apt_get' failed to install libssl"
print_errormessage
exit 1
fi
apt_get_with_fallbacks libicu-dev
if [ $? -ne 0 ]; then
echo "'$apt_get' failed to install libicu"
print_errormessage
exit 1
fi
A more robust approach would be to query available packages dynamically:
# Find available libssl package
SSL_PKG=$(apt-cache search '^libssl[0-9]' | head -1 | cut -d' ' -f1)
if [ -n "$SSL_PKG" ]; then
$apt_get install -y "$SSL_PKG"
fi
Runner Version and Platform
- Version of runner: latest (main branch, commit
c814d7ca) - OS: Debian 14 (and any future Debian/Ubuntu versions where versioned so-names change)
What's not working?
The installdependencies.sh script cannot install required .NET dependencies on Debian 14 because:
| Package type | Hardcoded names in script | Available on Debian 14 |
|---|---|---|
| OpenSSL | libssl3t64, libssl3, libssl1.1, libssl1.0.2, libssl1.0.0 |
libssl-dev |
| ICU | libicu80 … libicu52 |
libicu-dev (or libicu74 etc.) |
Additional context
- The Debian-based branch starts at line 45 of the script.
- The
apt_get_with_fallbacksfunction (line 77–95) tries each argument in order but gives up if none succeeds. - This pattern has the same maintenance burden as the ICU version list — each new Debian/Ubuntu release may introduce a new soname and break the script again.
- Using the
-devpackages as a final fallback avoids this maintenance treadmill.
- Lingua principale
- C#
- Stelle
- 6.4k
- Fork
- 1.5k
- Merge medio
- 17h 39m
- PR unite (30g)
- 35
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Nessuna guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di actions/runner
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
actions/runner#4820 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Runner crashes at InitializeSecretMasker on machines with Thai (th-TH) culture — culture-sensitive LastIndexOf in PowerShellPreAmpersandEscapeForse già presa @CloudNinjaDev l’ha presa 25 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
Broker retry logs an ERR stack trace and a phantom backoff on every job completion (listener's own cancellation treated as a request failure)Forse già presa @nitrobass24 l’ha presa 64 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di actions/runner
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
I maintainer di solito rispondono entro 1 giorno
-
enhancement no-stack-trace
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
greenshot/greenshot#1618 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
squad/utforming status/triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
Altinn/altinn-studio#21565 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
Tyrrrz/YoutubeDownloader#912 ·
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno