Apple open source code that is available to everyone. How I installed the zsh shell on Fedora 19 from source code.

Posted: August 3, 2013. At: 8:40 PM. This was 4 years ago. Post ID: 6070

http://www.apple.com/opensource/. There is a good selection of open-source code here that Apple is using on their machines. I downloaded the tarball of the zsh shell here: http://www.opensource.apple.com/source/zsh/zsh-55/zsh-4.3.11.tar.bz2.

This was compiled very easily after I installed the ncurses-devel RPM from this location for Fedora 19: ftp://rpmfind.net/linux/fedora/linux/releases/19/Everything/x86_64/os/Packages/n/ncurses-devel-5.9-11.20130511.fc19.x86_64.rpm.

Then I was able to complete the checks run by ./configure and then I typed make -j4 and then su -c “make install” to copy the compiled shell and its files to their proper locations.

I then added this ~/.zshrc file to the folder and I got the proper zsh shell I was after. Very good indeed.

My awesome .zshrc file.

#!/bin/zsh
#.zshrc file for zsh(1).

export MAIL=/var/spool/mail/$USERNAME
export LESS=-cex3M
export EDITOR=vim
export HELPDIR=/usr/local/lib/zsh/help  # directory for run-help function to find docs
manpath=($X11HOME/man /usr/man /usr/lang/man /usr/local/man)
export WINDOWMANAGER=wmaker
manpath=($X11HOME/man /usr/man /usr/lang/man /usr/local/man:/usr/share/man)
# Adding /usr/share/man to the search path for Mepis GNU/Linux.
export MANPATH
# Misc colors.
export NORMAL=" \e[0m"
export GREEN=" \e[1;32m"
export YELLOW=" \e[1;33m"
export WHITE=" \e[1;37m"
export CYAN=" \e[1;36m"

MAILCHECK=300
HISTSIZE=200
DIRSTACKSIZE=20

eval `dircolors -b`

# Use hard limits, except for a smaller stack and no core dumps
unlimit
limit stack 8192
limit core 0
limit -s

umask 022

# Set up aliases
alias mv='nocorrect mv'       # no spelling correction on mv
alias cp='nocorrect cp'       # no spelling correction on cp
alias mkdir='nocorrect mkdir' # no spelling correction on mkdir
alias j=jobs
alias pu=pushd
alias po=popd
alias d='dirs -v'
alias h=history
alias grep=egrep
alias ll='ls -l'
alias la='ls -a'
alias cls='clear'
alias lu='ls -hula'
# More useful Aliases.
alias tarunpack='tar -zxvf'
alias bz2unpack='tar -jxvf'

# List only directories and symbolic
# links that point to directories
alias lsd='ls -ld *(-/DN)'

# List only file beginning with "."
alias lsa='ls -ld .*'

# This code courtesy of Emacs ;).
# Not everyone has finger(1).
if [ -x /usr/bin/finger ] ; then
	INFO=$(finger -lmps $LOGNAME | fgrep On )
	alias userlist='finger -lmps'
else
	INFO=$(uname -msov)
	alias userlist='users'
fi

# Shell functions
setenv()
{
	typeset -x "${1}${1:+=}${(@)argv[2,$#]}"
}  # csh compatibility
freload()
{
	while (( $# )); do; unfunction $1; autoload -U $1; shift; done
}

# These following functions from http://www.die.net/doc/linux/abs-guide/sample-bashrc.html
function my_ip() # get IP adresses. Bracket on next line C style...
{
    MY_IP=$(/sbin/ifconfig ppp0 | awk '/inet/ { print $2 } ' | sed -e s/addr://)
    MY_ISP=$(/sbin/ifconfig ppp0 | awk '/P-t-P/ { print $3 } ' | sed -e s/P-t-P://)
}

function lowercase()  # move filenames to lowercase.
{
    for file ; do
        filename=${file##*/}
        case "$filename" in
        */*) dirname==${file%/*} ;;
        *) dirname=.;;
        esac
        nf=$(echo $filename | tr A-Z a-z)
        newname="${dirname}/${nf}"
        if [ "$nf" != "$filename" ]; then
            mv "$file" "$newname"
            echo "lowercase: $file --> $newname"
        else
            echo "lowercase: $file not changed."
        fi
    done
}

# Where to look for autoloaded function definitions
fpath=($fpath ~/.zfunc)

READNULLCMD=${PAGER:-/usr/bin/pager}

echo -e "${YELLOW}"
echo -e "${INFO}"
echo -e "$NORMAL"

autoload -U compinit
compinit
autoload -U promptinit; promptinit
prompt clint

No comments have been made. Use this form to start the conversation :)

Leave a Reply