I tried to install rdesktop rpm. But I didn't manage to find rpm for centos 7. Only rpm I could find was one from repoforge (http://pkgs.repoforge.org/rdesktop/). Unfortunatelly installation failed on missing dependency:
[root@centos-7 ~]# yum --nogpgcheck localinstall rdesktop-1.8.2-0.1.el6.rfx.x86_64.rpm
Loaded plugins: fastestmirror
Examining rdesktop-1.8.2-0.1.el6.rfx.x86_64.rpm: rdesktop-1.8.2-0.1.el6.rfx.x86_64
Marking rdesktop-1.8.2-0.1.el6.rfx.x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package rdesktop.x86_64 0:1.8.2-0.1.el6.rfx will be installed
--> Processing Dependency: libao.so.2()(64bit) for package: rdesktop-1.8.2-0.1.el6.rfx.x86_64
Loading mirror speeds from cached hostfile
* base: centos.ionic.net.pl
* extras: centos.hitme.net.pl
* updates: centos.hitme.net.pl
--> Finished Dependency Resolution
Error: Package: rdesktop-1.8.2-0.1.el6.rfx.x86_64 (/rdesktop-1.8.2-0.1.el6.rfx.x86_64)
Requires: libao.so.2()(64bit)
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
After installing libao package (yum install libaio), problem still persists:
[root@centos-7 ~]# rpm -qa | grep libao libao-1.1.0-8.el7.x86_64 [root@centos-7 ~]# ls -l /usr/lib64/libao* lrwxrwxrwx. 1 root root 14 Jul 8 13:25 /usr/lib64/libao.so.4 -> libao.so.4.0.0 -rwxr-xr-x. 1 root root 37568 Jun 10 00:05 /usr/lib64/libao.so.4.0.0
I have libao.so.4 but rdesktop wants libao.so.2. Quick and dirty workaround is to install package with --nodeps option and create symlink to satisfy rdesktop binary:
[root@centos-7 ~]# rpm -i --nodeps rdesktop-1.8.2-0.1.el6.rfx.x86_64.rpm warning: rdesktop-1.8.2-0.1.el6.rfx.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 6b8d79e6: NOKEY
List of libraries rdesktop binary is linked to. Notice libao.so.2 is not found:
[root@centos-7 ~]# ldd /usr/bin/rdesktop
linux-vdso.so.1 => (0x00007fffd3668000)
libssl.so.10 => /lib64/libssl.so.10 (0x00007fa0c4375000)
libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007fa0c3f90000)
libXrandr.so.2 => /lib64/libXrandr.so.2 (0x00007fa0c3d85000)
libpcsclite.so.1 => /lib64/libpcsclite.so.1 (0x00007fa0c3b7a000)
libsamplerate.so.0 => /lib64/libsamplerate.so.0 (0x00007fa0c380e000)
libasound.so.2 => /lib64/libasound.so.2 (0x00007fa0c3525000)
libao.so.2 => not found
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fa0c3309000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fa0c3104000)
libX11.so.6 => /lib64/libX11.so.6 (0x00007fa0c2dc6000)
libc.so.6 => /lib64/libc.so.6 (0x00007fa0c2a05000)
libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007fa0c27ba000)
libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007fa0c24da000)
libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007fa0c22d6000)
libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007fa0c20a0000)
libz.so.1 => /lib64/libz.so.1 (0x00007fa0c1e8a000)
libXext.so.6 => /lib64/libXext.so.6 (0x00007fa0c1c78000)
libXrender.so.1 => /lib64/libXrender.so.1 (0x00007fa0c1a6d000)
librt.so.1 => /lib64/librt.so.1 (0x00007fa0c1865000)
libm.so.6 => /lib64/libm.so.6 (0x00007fa0c1563000)
/lib64/ld-linux-x86-64.so.2 (0x00007fa0c45e8000)
libxcb.so.1 => /lib64/libxcb.so.1 (0x00007fa0c1341000)
libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007fa0c1133000)
libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007fa0c0f2f000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007fa0c0d14000)
libXau.so.6 => /lib64/libXau.so.6 (0x00007fa0c0b10000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fa0c08ea000)
libpcre.so.1 => /lib64/libpcre.so.1 (0x00007fa0c0689000)
liblzma.so.5 => /lib64/liblzma.so.5 (0x00007fa0c0464000)
Create libao.so.2 as symlink for libao.so.4:
[root@centos-7 ~]# ln -s /usr/lib64/libao.so.4 /usr/lib64/libao.so.2 [root@centos-7 ~]# [root@centos-7 ~]# ls -l /usr/lib64/libao* lrwxrwxrwx. 1 root root 21 Jul 8 13:33 /usr/lib64/libao.so.2 -> /usr/lib64/libao.so.4 lrwxrwxrwx. 1 root root 14 Jul 8 13:25 /usr/lib64/libao.so.4 -> libao.so.4.0.0 -rwxr-xr-x. 1 root root 37568 Jun 10 00:05 /usr/lib64/libao.so.4.0.0
Library dependency is satisfied now:
[root@centos-7 ~]# ldd /usr/bin/rdesktop
linux-vdso.so.1 => (0x00007fff18a99000)
libssl.so.10 => /lib64/libssl.so.10 (0x00007f789c3ed000)
libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007f789c008000)
libXrandr.so.2 => /lib64/libXrandr.so.2 (0x00007f789bdfd000)
libpcsclite.so.1 => /lib64/libpcsclite.so.1 (0x00007f789bbf2000)
libsamplerate.so.0 => /lib64/libsamplerate.so.0 (0x00007f789b886000)
libasound.so.2 => /lib64/libasound.so.2 (0x00007f789b59d000)
libao.so.2 => /lib64/libao.so.2 (0x00007f789b394000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f789b178000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f789af73000)
libX11.so.6 => /lib64/libX11.so.6 (0x00007f789ac35000)
libc.so.6 => /lib64/libc.so.6 (0x00007f789a874000)
libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007f789a629000)
libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007f789a349000)
libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007f789a145000)
libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007f7899f0f000)
libz.so.1 => /lib64/libz.so.1 (0x00007f7899cf9000)
libXext.so.6 => /lib64/libXext.so.6 (0x00007f7899ae7000)
libXrender.so.1 => /lib64/libXrender.so.1 (0x00007f78998dc000)
librt.so.1 => /lib64/librt.so.1 (0x00007f78996d4000)
libm.so.6 => /lib64/libm.so.6 (0x00007f78993d2000)
/lib64/ld-linux-x86-64.so.2 (0x00007f789c660000)
libxcb.so.1 => /lib64/libxcb.so.1 (0x00007f78991b0000)
libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007f7898fa2000)
libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007f7898d9e000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f7898b83000)
libXau.so.6 => /lib64/libXau.so.6 (0x00007f789897f000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f7898759000)
libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f78984f8000)
liblzma.so.5 => /lib64/liblzma.so.5 (0x00007f78982d3000)
Better solution is to rebuild rdesktop package. If you don't want to mess with rpmbuild, you can download my package. Otherwise setup rpm building tree (according to http://wiki.centos.org/HowTos/SetupRpmBuildEnvironment):
yum install rpm-build
As non-root user (I chose vajko account) setup rpm building tree:
mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
echo '%_topdir %(echo $HOME)/rpmbuild' > ~/.rpmmacros
sudo yum install make gcc
Install source rpm package:
[vajko@centos-7 ~]$ rpm -i rdesktop-1.8.2-0.1.rfx.src.rpm warning: rdesktop-1.8.2-0.1.rfx.src.rpm: Header V3 DSA/SHA1 Signature, key ID 6b8d79e6: NOKEY warning: user dag does not exist - using root warning: group dag does not exist - using root warning: user dag does not exist - using root warning: group dag does not exist - using root
Rebuild package:
[vajko@centos-7 ~]$ rpmbuild -ba rpmbuild/SPECS/rdesktop.spec
error: Failed build dependencies:
libsamplerate-devel is needed by rdesktop-1.8.2-0.1.el7.centos.x86_64
openssl-devel is needed by rdesktop-1.8.2-0.1.el7.centos.x86_64
libXt-devel is needed by rdesktop-1.8.2-0.1.el7.centos.x86_64
Install dependencies and try to rebuild again:
[vajko@centos-7 ~]$ sudo yum install openssl-devel libXt-devel libsamplerate-devel
[vajko@centos-7 ~]$ rpmbuild -ba rpmbuild/SPECS/rdesktop.spec
.
.
.
OUTPUT TRUNCATED
.
.
.
checking for x86_64-redhat-linux-gnu-pkg-config... /bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for XRANDR... no
checking for PCSCLITE... no
SmartCard support requires PCSC, install the dependency
or disable the feature using --disable-smartcard.
error: Bad exit status from /var/tmp/rpm-tmp.s8HBzC (%build)
RPM build errors:
Bad exit status from /var/tmp/rpm-tmp.s8HBzC (%build)
Rebuilding failed because spec file is missing smartcard package dependency. Missing package is pcsc-lite-devel:
[vajko@centos-7 ~]$ sudo yum install pcsc-lite-devel [vajko@centos-7 ~]$ rpmbuild -ba rpmbuild/SPECS/rdesktop.spec . . . OUTPUT TRUNCATED . . . Checking for unpackaged file(s): /usr/lib/rpm/check-files /home/vajko/rpmbuild/BUILDROOT/rdesktop-1.8.2-0.1.el7.centos.x86_64 Wrote: /home/vajko/rpmbuild/SRPMS/rdesktop-1.8.2-0.1.el7.centos.src.rpm Wrote: /home/vajko/rpmbuild/RPMS/x86_64/rdesktop-1.8.2-0.1.el7.centos.x86_64.rpm Wrote: /home/vajko/rpmbuild/RPMS/x86_64/rdesktop-debuginfo-1.8.2-0.1.el7.centos.x86_64.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.abuTrh + umask 022 + cd /home/vajko/rpmbuild/BUILD + cd rdesktop-1.8.2 + /usr/bin/rm -rf /home/vajko/rpmbuild/BUILDROOT/rdesktop-1.8.2-0.1.el7.centos.x86_64 + exit 0
Package was built successfully. Remove installed devel packages if you don't need them for anything else:
yum remove pcsc-lite-devel openssl-devel libXt-devel libsamplerate-devel
Reinstall rpm package:
[vajko@centos-7 ~]$ sudo yum remove rdesktop [vajko@centos-7 ~]$ sudo yum localinstall --nogpgcheck rpmbuild/RPMS/x86_64/rdesktop-1.8.2-0.1.el7.centos.x86_64.rpm
great! well done, was looking for a solution to this.
ReplyDeleteMany thx for your efforts to document this process!
five
Thanks Hasis! Great manual.
ReplyDelete