Einfach mal ein aktuelles RAR installieren (zur Zeit Version 7.20), direkt von der Herstellerseite.
Die RAR Bezugsquelle wird im Wikipedia Artikel gezeigt:
Falls man auch einen Uninstaller für das Linux RAR von der Herstellerseite haben möchte, dann einfach das makefile aus dem Tarbollen ergänzen mit:
uninstall:
rm -v $(PREFIX)/bin/rar $(PREFIX)/bin/unrar
rm -v /etc/rarfiles.lst
rm -v $(PREFIX)/lib/default.sfx
Dann lässt es sich mit:
sudo make uninstall
... deinstallieren. Hat man zuvor DEB-Pakete verwendet und das RAR von der Herstellerseite drüberinstalliert, dann muss man nach dem deinstallieren die entsprechenden Ubuntu Pakete reinstallieren.
Nachtrag, neuste Versionen von 7-Zip sollen auch RAR5 Archive unterstützen, steht in der 7-Zip FAQ:
Das neuste 7-Zip kann man sich aus dem GIT selbst bauen:
alias 7zipneu='INSTALLATIONSDISK=$HOME/Installationsdisk && \
SEVENZIP_BASE=$INSTALLATIONSDISK/7zip_base && \
SEVENZIP_SRC=$SEVENZIP_BASE/7zip && \
PREFIX=/usr && \
ID=$(id --user) && \
[ ! -d $INSTALLATIONSDISK ] && mkdir -pv $INSTALLATIONSDISK || echo "$INSTALLATIONSDISK exists" && \
[ ! -d $SEVENZIP_BASE ] && mkdir -pv $SEVENZIP_BASE || echo "$SEVENZIP_BASE exists" && \
[ -d $SEVENZIP_SRC ] && yes | sudo rm -rf $SEVENZIP_SRC && \
echo "Builddir removed, OK" || echo "No need remove Builddir, OK." && \
[ ! -d $SEVENZIP_SRC ] && mkdir -pv $SEVENZIP_SRC && \
sudo mount -v tmpfs $SEVENZIP_SRC -t tmpfs -o mode=777,uid=$ID && \
[ ! -d $SEVENZIP_SRC/.git ] && git clone https://github.com/ip7z/7zip.git $SEVENZIP_SRC && \
printf "\n \033[45m\033[1;36m==> 7zip Sourcecode cloned. \033[0m\033[42m\033[1;36m ==> ... \033[0m \n \n" || \
printf "\n \033[45m\033[1;36m==> 7zip Sourcecode found. \033[0m\033[42m\033[1;36m ==> ... \033[0m \n \n" && \
printf "\n \033[45m\033[1;36m==> Update 7zip Sourcecode. \033[0m\033[42m\033[1;36m ==> ... \033[0m \n \n" && \
git -C $SEVENZIP_SRC pull && echo "git pull done." || echo "No git pull." && \
printf "\n \033[45m\033[1;36m==> Compile 7zip. \033[0m\033[42m\033[1;36m ==> ... \033[0m \n \n" && \
cd $SEVENZIP_SRC && \
for component in Bundles/{Alone,Alone2,Alone7z,Format7zF,SFXCon} UI/Console; do
time make -j $(nproc --all) -C CPP/7zip/$component -f ../../cmpl_gcc.mak \
MY_ASM=uasm \
USE_ASM=1 \
IS_X64=1 \
LFLAGS_STRIP= \
CC="cc $CPPFLAGS $CFLAGS $LDFLAGS" \
CXX="g++ $CPPFLAGS $CXXFLAGS $LDFLAGS" \
-Wno-dev
done && \
printf "\n \033[45m\033[1;36m==> Compile 7zip. \033[0m\033[42m\033[1;36m ==> ... \033[0m \n \n" && \
sudo porg -lp 7zip \
"install -v -m 755 -p $SEVENZIP_SRC/CPP/7zip/Bundles/Alone2/b/g/7zz $PREFIX/bin/7z
install -v -m 755 -p $SEVENZIP_SRC/CPP/7zip/Bundles/Alone/b/g/7za $PREFIX/bin/ && \
install -v -m 755 -p $SEVENZIP_SRC/CPP/7zip/Bundles/Alone7z/b/g/7zr $PREFIX/bin/ && \
strip --strip-unneeded $PREFIX/bin/7z* && \
install -v -m 755 -p $SEVENZIP_SRC/CPP/7zip/Bundles/Format7zF/b/g/7z.so $PREFIX/lib/7zip/ && \
install -v -m 755 -p $SEVENZIP_SRC/CPP/7zip/Bundles/SFXCon/b/g/7zCon $PREFIX/lib/7zip/7zCon.sfx && \
install -v -m 755 -p $SEVENZIP_SRC//CPP/7zip/Bundles/Alone2/b/g/7zz $PREFIX/lib/7zip/7z && \
install -v -m 755 -p $SEVENZIP_SRC/CPP/7zip/Bundles/Alone/b/g/7za $PREFIX/lib/7zip/ && \
install -v -m 755 -p $SEVENZIP_SRC/CPP/7zip/Bundles/Alone7z/b/g/7zr $PREFIX/lib/7zip/ && \
strip --strip-unneeded $PREFIX/lib/7zip/* 2>/dev/null" && \
sudo ldconfig && \
printf "\n \033[45m\033[1;36m==> 7zip successful install. \033[0m\033[42m\033[1;36m ==> Done.\033[0m \n \n" && \
printf "\n \033[45m\033[1;36m==> 7zip deinstall: \033[0m\033[43m\033[1;36m sudo -rv 7zip <== \033[0m \n \n" || \
printf "\n \033[41m\033[1;36m==> 7zip build or install failed.\033[0m \n \n" | tee -a $HOME/buildfail.log ; \
cd $HOME ; \
sudo umount -fv $SEVENZIP_SRC ; \
[ -d $SEVENZIP_SRC ] && yes | sudo rm -rf $SEVENZIP_SRC && echo "Builddir cleaned." || echo "Builddir was clean." ; \
cd $HOME'
Braucht aber auch noch den speziellen Assembler uasm um die beste Leistung zu bringen:
alias uasmneu='INSTALLATIONSDISK=$HOME/Installationsdisk && \
UASM_BASE=$INSTALLATIONSDISK/UASM_BASE && \
UASM_SRC=$UASM_BASE/UASM-${VERSION}r
UASM_SRC_PKG=UASM-${VERSION}r.tar.gz
VERSION=2.57
PREFIX=/usr && \
ID=$(id --user) && \
[ ! -d $INSTALLATIONSDISK ] && mkdir -pv $INSTALLATIONSDISK || echo "$INSTALLATIONSDISK exists" && \
[ ! -d $UASM_BASE ] && mkdir -pv $UASM_BASE || echo "$UASM_BASE exists" && \
[ ! -f $UASM_BASE/$UASM_SRC_PKG ] && \
printf "\n \033[45m\033[1;36m==> Get UASM Sourcecode. \033[0m\033[42m\033[1;36m ==> ... \033[0m \n \n" && \
wget -O $UASM_BASE/$UASM_SRC_PKG https://github.com/Terraspace/UASM/archive/refs/tags/v${VERSION}r.tar.gz || \
echo "$UASM_SRC_PKG exists" && \
[ -d $UASM_SRC ] && yes | rm -rf $UASM_SRC && \
echo "Builddir removed, OK" || echo "No need remove Builddir, OK." && \
mkdir -v $UASM_SRC && cd $UASM_SRC && \
sudo mount -v tmpfs $UASM_SRC -t tmpfs -o mode=777,uid=$ID && \
tar -xf $UASM_BASE/$UASM_SRC_PKG -C $UASM_BASE && \
printf "\n \033[45m\033[1;36m==> Compile UASM. \033[0m\033[42m\033[1;36m ==> ... \033[0m \n \n" && \
cd $UASM_SRC && \
time make -j $(nproc --all) -C $UASM_SRC ADDFLAGS=-march=native STRIP=true \
OPTFLAGS="-O3 -ftree-loop-vectorize -pie -aslr -flto=`nproc --all`" -f Makefile-Linux-GCC-64.mak CC=gcc-13 -Wno-dev && \
printf "\n \033[45m\033[1;36m==> Install UASM. \033[0m\033[42m\033[1;36m ==> ... \033[0m \n \n" && \
sudo porg -lp uasm "install -v -m 755 -p $UASM_BASE/UASM-${VERSION}r/GccUnixR/uasm $PREFIX/bin/uasm" && \
printf "\n \033[45m\033[1;36m==> Install UASM successful. \033[0m\033[42m\033[1;36m ==> Done.\033[0m \n \n" && \
printf "\n \033[45m\033[1;36m==> UASM deinstall: \033[0m\033[43m\033[1;36m sudo porg -rv uasm <== \033[0m \n \n" || \
printf "\n \033[41m\033[1;36m==> Install UASM failed.\033[0m \n \n"| tee -a $HOME/buildfail.log ; \
cd $HOME ; \
sudo umount -fv $UASM_SRC ; \
[ -d $UASM_SRC ] && yes | rm -rf $UASM_SRC && echo "Builddir cleaned." || echo "Builddir was clean." ; \
cd $HOME'
Das sind beides alias für die $HOME/.bashrc. Nach eintragen von neuen alias muss die $HOME/.bashrc frisch eingelesen werden:
source $HOME/.bashrc
Zum bauen von Programmen muss naütlich der übliche Klimbim installiert sein, und falls was fehlt, dann nachinstallieren.
porg brauchts dann auch noch, um selbst gebautes im Überblick zu behalten: