I'm trying to install a GitHub runner on my Linux machine (Ubuntu 20.04.1 LTS) following the steps described at repo>settings>Actions>add runner. The first steps worked fine but when I run the config:
./config.sh --url <repo URL> --token <token>
I get the following failure message:
ldd: ./bin/libSystem.Security.Cryptography.Native.OpenSsl.so: No such file or directory
ldd: ./bin/libSystem.IO.Compression.Native.so: No such file or directory
touch: cannot touch '.env': Permission denied
./env.sh: line 37: .path: Permission denied
./env.sh: line 32: .env: Permission denied
Unhandled exception. System.UnauthorizedAccessException: Access to the path '/actions-runner/_diag' is denied.
---> System.IO.IOException: Permission denied
--- End of inner exception stack trace ---
at System.IO.FileSystem.CreateDirectory(String fullPath)
at System.IO.Directory.CreateDirectory(String path)
at GitHub.Runner.Common.HostTraceListener..ctor(String logFileDirectory, String logFilePrefix, Int32 pageSizeLimit, Int32 retentionDays)
at GitHub.Runner.Common.HostContext..ctor(String hostType, String logFile)
at GitHub.Runner.Listener.Program.Main(String[] args)
./config.sh: line 76: 10405 Aborted (core dumped) ./bin/Runner.Listener configure "$@"
config.sh does not allow the user to execute it as sudo, so I've modified the script to be allowed to do so but the problems with the permissions remain. Any ideas?
UPDATE: I also installed dependencies by running the command below in /actions-runner directory and nothing has changed, the error message is still the same.
sudo ./bin/installdependencies.sh
In the left sidebar, click Actions, then click Runners. Under "Runners", you can view a list of registered runners, including the runner's name, labels, and status. The status can be one of the following: Idle: The runner is connected to GitHub and is ready to execute jobs.
GitHub Actions usage is free for both public repositories and self-hosted runners.
Runners are the machines that execute jobs in a GitHub Actions workflow. For example, a runner can clone your repository locally, install testing software, and then run commands that evaluate your code. GitHub provides runners that you can use to run your jobs, or you can host your own runners.
The above solutions did not work for me, I installed an older version instead 2.276.1
. For a linux 64-bit OS the curl command is:
curl -O -L https://github.com/actions/runner/releases/download/v2.276.1/actions-runner-linux-x64-2.276.1.tar.gz
Expanding on @someone's answer, I created a quick loop to make symlinks for every one of of these renamed libraries that live in the bin directory of the github action runners. After running the installdependencies.sh script, it creates a symlink for every file that starts with "System." and appends "lib" to the original filename.
sudo ./bin/installdependencies.sh \
&& cd ./bin \
&& for lib in $(find . -name 'System.*'); do \
toFile=$(echo "$lib" | sed -e 's/\.\/System\./.\/libSystem./g'); \
if ! [ -f $toFile ]; then sudo ln -s $lib $toFile; fi; \
done && cd ..
When you are selecting your runner ensure that you are using the correct image for where it is being executed.
The problem is related to the .NET dependency. The GitHub runner uses the 3.x version while the latest (and what I had installed) is 5. In the newer version, those libraries are renamed without the preceding "lib". More details on that here
.NET 3.x:
libSystem.Security.Cryptography.Native.OpenSsl.so
libSystem.IO.Compression.Native.so
.NET 5.x
System.Security.Cryptography.Native.OpenSsl.so
System.IO.Compression.Native.so
1 - Install .NET 3.x Installation guide
2 - Crete a symlink to access the newer through the old one:
ln -s /usr/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/libSystem.Security.Cryptography.Native.OpenSsl.so /usr/share/dotnet/shared/Microsoft.NETCore.App/3.1.10/libSystem.Security.Cryptography.Native.OpenSsl.so
ln -s /usr/share/dotnet/shared/Microsoft.NETCore.App/5.0.1/libSystem.Security.Cryptography.Native.OpenSsl.a /usr/share/dotnet/shared/Microsoft.NETCore.App/3.1.10/libSystem.Security.Cryptography.Native.OpenSsl.a
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With