MacPorts

port selfupdate && port upgrade outdated # # port installed port clean paketti port variants paketti port install paketti +haluttu +ominaisuus -ei -haluttu -ominaisuus # aluksi pienet apuohjelmat, esim. port install dash lz4 gsed sitten pienehköt (vaikka suuret riippuvuudet) port install bat clpbar coreutils gnetcat htop inetutils iperf3 jq nmap \ rlwrap rsnapshot tcpdump tig tmux tree ttcp watch jos error kokeile port clean coreutils && port install coreutils port rev-upgrade port contents paketti otool -L /polku/binaari lisää tekstinkäsittelyä? port install pandoc recode
- jokaseen koneeseen jossa haluaa käyttää MacPorts-sovelluksia ei tarvitse eikä kannata asentaa Xcodea ja aloittaa kääntämään sorsista riippuvuuksineen kaikkea koska pkg-, mpkg- ja dmg-pakettien ja levykuvien tekeminen komennolla port on helppoa - pkg ja dmg (jonka sisälle tulee pkg) eivät ratkaise riippuvuusasioita, mutta mpkg-asennuspaketissa onnekkaasti on mukana kaikki sovelluksen tarvitsemat apukirjastot - harjoitus: + valitse sovellukset joiden puute tai version vanhuus häiritsee OS X:n komentorivillä + tee mpkg:t sovelluksista, esim. bat clpbar gnetcat htop inetutils nmap rlwrap rsnapshot tcpdump tig tree watch + tee kompakti dmg jossa tärkeimmät valitsemistasi sovelluksista + jaa, asentele, testaile + jos käytät eri käyttisversioita (Tiikeri, Leopardi, Lumileopardi, Leijona, ...) tai rauta-arkitehtuureja (PPC, Intel) käännä niille omat paketit - ratkaisu, muistilaput, liikkeelle tyhjästä 8< - - - # Asenna Applen sivulta koneen käyttikseen sopiva viimeisin Xcode-päivitys # 2010-10: OS X 10.4.11 >> xcode25_8m2558, 10.5.8 >> xcode314_2809, 10.6.4 >> 3.2.5 # Asenna koneen käyttikseen sopiva viimeisin MacPorts, esim. hdiutil attach http://distfiles.macports.org/MacPorts/MacPorts-1.9.1-10.6-SnowLeopard.dmg sudo installer -pkg /Volumes/MacPorts-1.9.2/MacPorts-1.9.2.pkg -target / # tai hiirellä... # Tee paketit, esim. yes | \ for i in bat clpbar gnetcat htop inetutils jq nmap rlwrap rsnapshot tcpdump tig tmux tree watch; do \ port mpkg $i done # Varaa aikaa, asioita käännetään nyt sorsista aika monta kertaa... # Seuraa valmistumista find /opt/local/var/macports/build -type f -name \*mpkg # Pakkaa paketit jaeltavaksi; chown, mv tai cp, tar -cjvf # zip -r ei osaa linkkejä, nmap Tiikerille ei sen takia ensin onnistunut # Lataa, asenna ja testaile valmispaketteja # Lisäksi bonuksena voit tehdä pienen dmg-levykuvan # jossa on vain omat suosikkipaketit hdiutil create -volname MacPortsFavourites -srcfolder Desktop/ util_10.4_tiger_ppc.dmg # Uudet herkut oletushakupolkuun, lisää ~/.profile -tiedostoon rivit export PATH="$PATH:/opt/local/bin:/opt/local/sbin" export MANPATH="$MANPATH:/opt/local/man" # Huom macports installeri laittaa toisin päin mutta se ei ole hyvä - kaikkea ei kannata innostua kääntämään itse koska joihinkin tarpeisiin on pidemmälle erikoistuneet (Aqua vs. X11) valmispaketoinnit, esim. vim, emacs ja gimp - jos kääntäminen ei onnistu MacPortsin poisto ja uudelleen asennus saattaa auttaa - pakettientekoympäristöön ei tarvitse asentaa mitään MacPorts-paketteja, Xcode ja tuore luuranko-dmg riittävät - joskus osa paketeista ei käänny heti mutta uudella yrityksellä onnistuu, pidemmällä shell-loopilla epäonnistuneiden uudelleenyrityksiä kannattaa kokeilla 2-3 kertaa ilman kummempia huolestumisia... saattaa liittyä siihen että paketin dep ja buildep tiedot eivät ole aivan täydelliset? - jos käytät kehitysympäristöä pidempään pidä se ajan tasalla (port sync jne.) - paketteja voi toki tehdä ilman MacPorts-ympäristöäkin suoraan Xcode-gui:lla
read only ad hoc? .mpkg:t on helppo tosiaan asentaa mutta kannattaako vaivautua jotain kerran tarvittua tilannetta varten? Ehkä ei. Kaikki ei toimi 100% mutta ei haittaa ehkä: - tee DiskUtility:llä tai komentorivillä niin iso read/write image että asennettunakin mahtuu - asenna .mpkg:si imagelle (!) tsekkaa nimi, alla oletetaan Untitled export CM_BUILD=CM_BUILD for i in *mpkg; do installer -pkg "$i" -target /Volumes/Untitled ; done - anna imagelle joku kiva nimi (Finder antaa vaihtaa) mutta huomaa vaihtaa se komentoihin alla - eject/detach/unmount - sulje DiskUtility GUI koska bugi - avaa DiskUtility GUI ja valitse Images - Convert... ja vaihda .dmg compressed imageksi - tallenna jonnekin luotettuun paikkaan - käyttö, vaikkapa: hdiutil attach http://mesta/image.dmg DYLD_LIBRARY_PATH=/Volumes/Untitled/opt/local/lib/ /Volumes/Untitled/opt/local/bin/lftp sftp://user@mesta ... ... mirror -R jne. mitä nyt tarvitsee HUOM melkein kaikki on rikki tai toimii varoitellen Catalinen kanssa, esim riippuvuudet, valittaa coreutils puutteesta tai /Applications/Macports/Python puutteesta kokeile port clean coreutils port install coreutils . . ...jne... . . coreutils has the following notes: The tools provided by GNU coreutils are prefixed with the character 'g' by default to distinguish them from the BSD commands. For example, cp becomes gcp and ls becomes gls. If you want to use the GNU tools by default, add this directory to the front of your PATH environment variable: /opt/local/libexec/gnubin/
Xcode vai Xcode-beta ? /usr/bin/xcode-select -p # tulosta /usr/bin/xcode-select -s /Applications/Xcode-beta.app/Contents/Developer
perus web debug? port install inetutils gtelnet localhost 80 GET / HTTP/1.1 HOST: localhost
Tietokantaa? port select mysql mariadb-10.2 ... ... port load mariadb-10.2-server ... ... port unload mariadb-10.2-server https://guide.macports.org https://trac.macports.org/wiki/howto/MySQL port install mariadb-10.2 mariadb-10.2-server mysql_select php73 php_select
exif-datoja? port install p5-image-exiftool /opt/local/libexec/perl5.28/exiftool -a -u -g1 image.CR2 (ImageMagick: identify -verbose file.CR2 on kova mutta raskaat riippuvuudet)