I have an rpm package prebuilt by a third party and have to install it into my Guix server machine. So how can I install an rpm package into a Guix machine?
Thanks.
Short answer: You can't. There is no documented way to convert your rpm packages to one managed by Guix, and no "API" that could deal with those packages.
Also, there is no way to install without conversion of RPM packages inside GuixSD or NIX.
Your best beat here is to extract rpm contents inside a RPM based distribution, and repack it outside the package tree. You will have to deal with dependencies and other hell related to this conversion. Good luck.
I haven't tried installing a foreign distribution RPM package on Guix System, and would advise against it on your main system (it may lead to breakage), but if it's just for testing purpose, it's entirely possible:
# Generate a test RPM package.
# mkdir /var/lib/rpm
# chown root:users /var/run/rpm
# chmod g+rw /var/run/rpm
# Install it with RPM.
$ guix shell rpm
[env]$ rpm_package=$(guix pack -f rpm -R -S /usr/bin/hello=bin/hello hello hello)
[env]$ sudo -E rpm -i --prefix=/opt $rpm_package
# Validate its installation.
[env]$ rpm -q hello
hello-2.12.1-0.x86_64
[env]$ file /opt/usr/bin/hello
/opt/usr/bin/hello: symbolic link to ../../gnu/store/hccgf4lpfy2dwwmglmhsyr83yywzxhbr-profile/bin/hello
[env]$ /opt/usr/bin/hello
Hello, world!
See https://guix.gnu.org/en/manual/devel/en/html_node/Invoking-guix-pack.html#Invoking-guix-pack for more information about the guix pack command which was used to generate the hello test RPM package.