lisanet
Aktives Mitglied
        Thread Starter
    
				
					
						- Registriert
- 05.12.2006
- Beiträge
- 14.938
- Reaktionspunkte
- 18.505
In einem Thread kürzlich kam das Thema eines updates von rsync auf. macOS liefert aufgrund der Bestimmungen der GPL 3 keine Software mit, die der GPL 3 unterleigen, so dass rsync in einer alten Version erscheint. Grundsätzlich ist das kein Problem. Wer, warum auch immer, aber eine aktuelle Version von rsync möchte, muss sich dann anders behelfen.
Recht einfach geht das im Grunde mit homebrfew. Allerdings nimmt man damit einen sehr großen overhead mit, nur um ein einzelnes binary zu aktualisieren.
Diesen overhead kann man sich sparen, indem man rsync selbst kompiliert. Da es nicht jederfraus Sache ist, das alles selbst zusammen zu bauen, habe ich ein script erstellt, welche alle nötigen Komponenten herunter lädet und rsync kompiliert. Am Ende habt ihr ein aktuelles rsync binary ohne den overhead von homebrew.
Das zwischenzeitlich fürs Kompilieren erstellte Verzeichnis könnt ihr einfach löschen. Ihr benötigt es nicht mehr.
Als Voraussetzung müsst ihr euch im Terminal bewegen können und sicherstellen, dass die command line tolls installiert sind. Falls diese noch nicht installiert sind, holt dies bitte nun nach und zwar mit
	
	
	
		
Nun legt eine neues Verzeichnis in eurem Homeverzeichnis an, hier im Beispiel nenne ich es "myrsync" (nennt es bitte nicht nur 'rsync'). Dann nehmt ihr das folgende Script via copy&paste und legt es als reine Textdatei in dieses Verzeichnis. Nehmt dazu bitte sowas wie BBEdit und nicht TextEdit.app. Dieses script nennt ihr dann "make_rsyc" (ohne jedes Suffix)
Hier das script:
	
	
	
		
Nun gehts los. Zuerst wechselt ihr in das gerade angelegte Verzeichnis
	
	
	
		
dann macht ihr das script ausführbar mit
	
	
	
		
und schließlich ruft ihr es auf mit (ihr müsst eurer Admin-PW eingeben)
	
	
	
		
Nun werden allen benötigen libraries und rsync herunter geladen und kompiliert. Das fertige rsync liegt dann sowohl im Verzeichnis 'myrsync' und wird zusätzlich nach /usr/local/bin kopiert und ist dann ganz normal aufrufbar, das /usr/local/bin im PATH liegt.
Wenn ihr rsync noch für einen anderen Mac benötigt (mit gleicher macOS-Version) dann könnte ihr das rsync bniary einfach dorthin kopieren.
Wollt ihr irgendwann mal rsycn erneuern, dann müsst ihr lediglich die Links zu den jeweiligen downloads aktualiseren. Im script findet ihr diese immer in einer Zeile mit bspw
	
	
	
		
Viel Spaß beim kompilieren.
	
		
			
		
		
	
				
			Recht einfach geht das im Grunde mit homebrfew. Allerdings nimmt man damit einen sehr großen overhead mit, nur um ein einzelnes binary zu aktualisieren.
Diesen overhead kann man sich sparen, indem man rsync selbst kompiliert. Da es nicht jederfraus Sache ist, das alles selbst zusammen zu bauen, habe ich ein script erstellt, welche alle nötigen Komponenten herunter lädet und rsync kompiliert. Am Ende habt ihr ein aktuelles rsync binary ohne den overhead von homebrew.
Das zwischenzeitlich fürs Kompilieren erstellte Verzeichnis könnt ihr einfach löschen. Ihr benötigt es nicht mehr.
Als Voraussetzung müsst ihr euch im Terminal bewegen können und sicherstellen, dass die command line tolls installiert sind. Falls diese noch nicht installiert sind, holt dies bitte nun nach und zwar mit
		Code:
	
	xcode-select --installNun legt eine neues Verzeichnis in eurem Homeverzeichnis an, hier im Beispiel nenne ich es "myrsync" (nennt es bitte nicht nur 'rsync'). Dann nehmt ihr das folgende Script via copy&paste und legt es als reine Textdatei in dieses Verzeichnis. Nehmt dazu bitte sowas wie BBEdit und nicht TextEdit.app. Dieses script nennt ihr dann "make_rsyc" (ohne jedes Suffix)
Hier das script:
		Bash:
	
	#!/bin/zsh
function download()
{
    base=$(basename "$1")
    [ ! -e "$base" ] && curl -LO "$1"
    tar -xzf "$base"
    rm -f "$base"
    cd $(basename "$base" .tar.gz)
}
function cleanup()
{
    cd "$1"
    [ -n "$2" ] && param="$2" || param="uninstall"
    sudo make "$param"
    cd ..
    rm -rf "$1"
}
#---
# download status 19.Jan.2025
# build libraries
# openssl
download https://github.com/openssl/openssl/releases/download/openssl-3.4.0/openssl-3.4.0.tar.gz
./Configure no-shared
make build_sw
sudo make install_sw
cd -
# xxHash
download https://github.com/Cyan4973/xxHash/archive/refs/tags/v0.8.3.tar.gz
cd xxHash-0.8.3
make
sudo make install
sudo rm -f /usr/local/lib/libxxhash*dylib
cd -
# lz4
download https://github.com/lz4/lz4/releases/download/v1.10.0/lz4-1.10.0.tar.gz
make
sudo make install
sudo rm -f /usr/local/lib/liblz4*dylib
cd -
# zstd
download https://github.com/facebook/zstd/releases/download/v1.5.6/zstd-1.5.6.tar.gz
make
sudo make install
sudo rm -r /usr/local/lib/libzstd*dylib
cd -
# now rsync
download https://download.samba.org/pub/rsync/src/rsync-3.4.1.tar.gz
./configure --disable-md2man
make
# and copy rsync into a path directory, /usr/local/bin
cp rsync ..
sudo mkdir -p /usr/local/bin
sudo cp rsync /usr/local/bin/
cd -
# cleanup
cleanup openssl* uninstall_sw
cleanup xxHash*
cleanup lz4*
cleanup zstd*
cleanup rsync-*
# end of scriptNun gehts los. Zuerst wechselt ihr in das gerade angelegte Verzeichnis
		Code:
	
	cd ~/myrsyncdann macht ihr das script ausführbar mit
		Code:
	
	chmod a+x make_rsyncund schließlich ruft ihr es auf mit (ihr müsst eurer Admin-PW eingeben)
		Code:
	
	sudo ./make_rsyncNun werden allen benötigen libraries und rsync herunter geladen und kompiliert. Das fertige rsync liegt dann sowohl im Verzeichnis 'myrsync' und wird zusätzlich nach /usr/local/bin kopiert und ist dann ganz normal aufrufbar, das /usr/local/bin im PATH liegt.
Wenn ihr rsync noch für einen anderen Mac benötigt (mit gleicher macOS-Version) dann könnte ihr das rsync bniary einfach dorthin kopieren.
Wollt ihr irgendwann mal rsycn erneuern, dann müsst ihr lediglich die Links zu den jeweiligen downloads aktualiseren. Im script findet ihr diese immer in einer Zeile mit bspw
		Code:
	
	download https://github.com/facebook/zstd/releases/download/v1.5.6/zstd-1.5.6.tar.gzViel Spaß beim kompilieren.
 
 
		 
 
		 )
 )
 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		