2015年1月12日 星期一

[ArchLinux] How to Download source code on Archlinux

Two way to download source code on Archlinux
1. Software is available in the official Arch Linux repositories.
2. Software is not available in the official Arch Linux repositories.
Here introduce way 1.


Available in the official Arch Linux repositories :
Update database
pacman -Syu
pacman -S base-devel


Install ABS (Arch Build System)
pacman -S abs


vim /etc/abs.conf

#
# REPOS to be parsed by abs (in this order)
#   (prefix a repo with a ! to disable it)
#
# Note: If a repo is removed, it is still fetched!
# Repos must be preceded with a ! to prevent fetching
#
REPOS=(core extra community multilib testing community-testing multilib-testing
       staging community-staging gnome-unstable kde-unstable)
Type abs to sync
sudo abs
==> Starting ABS sync...
receiving file list ... done


E.g. Download wvdial
mkdir ~/build
cd ~/build
cp -r /var/abs/community/wvdial ~/build
cd wvdial && makepkg -s
==> Making package: usb_modeswitch 2.2.0-1 (Mon Jan 12 09:39:32 UTC 2015)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Found usb-modeswitch-2.2.0.tar.bz2
  -> Found usb-modeswitch-data-20140529.tar.bz2
  -> Found usb-modeswitch-2.2.0-device_reference.txt
==> Validating source files with md5sums...
    usb-modeswitch-2.2.0.tar.bz2 ... Passed
    usb-modeswitch-data-20140529.tar.bz2 ... Passed
    usb-modeswitch-2.2.0-device_reference.txt ... Passed
==> Extracting sources...
  -> Extracting usb-modeswitch-2.2.0.tar.bz2 with bsdtar
  -> Extracting usb-modeswitch-data-20140529.tar.bz2 with bsdtar
==> Starting prepare()...
==> Removing existing pkg/ directory...
==> Starting build()...
/bin/rm -f usb_modeswitch
/bin/rm -f usb_modeswitch_dispatcher
/bin/rm -f usb_modeswitch.string
/bin/rm -f jim/autosetup/jimsh0
/bin/rm -f jim/autosetup/jimsh0.c
cc -o usb_modeswitch usb_modeswitch.c -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -Wall `pkg-config --libs --cflags libusb-1.0` -Wl,-O1,--sort-common,--as-needed,-z,relro
sed 's_!/usr/bin/tclsh_!'"/usr/bin/tclsh"'_' < usb_modeswitch.tcl > usb_modeswitch_dispatcher
==> Entering fakeroot environment...
==> Starting package()...
sed 's_!/usr/bin/tclsh_!'"/usr/bin/tclsh"'_' < usb_modeswitch.tcl > usb_modeswitch_dispatcher
install -D --mode=755 usb_modeswitch /home/vagrant/build/usb_modeswitch/pkg/usb_modeswitch/usr/bin/usb_modeswitch
install -D --mode=755 usb_modeswitch.sh /home/vagrant/build/usb_modeswitch/pkg/usb_modeswitch/usr/lib/udev/usb_modeswitch
install -D --mode=644 usb_modeswitch.conf /home/vagrant/build/usb_modeswitch/pkg/usb_modeswitch/etc/usb_modeswitch.conf
install -D --mode=644 usb_modeswitch.1 /home/vagrant/build/usb_modeswitch/pkg/usb_modeswitch/usr/share/man/man1/usb_modeswitch.1
install -D --mode=644 usb_modeswitch_dispatcher.1 /home/vagrant/build/usb_modeswitch/pkg/usb_modeswitch/usr/share/man/man1/usb_modeswitch_dispatcher.1
install -D --mode=755 usb_modeswitch_dispatcher /home/vagrant/build/usb_modeswitch/pkg/usb_modeswitch/usr/bin/usb_modeswitch_dispatcher
install -d /home/vagrant/build/usb_modeswitch/pkg/usb_modeswitch/var/lib/usb_modeswitch
test -d /home/vagrant/build/usb_modeswitch/pkg/usb_modeswitch/etc/init -a -e /sbin/initctl && install --mode=644 usb-modeswitch-upstart.conf /home/vagrant/build/usb_modeswitch/pkg/usb_modeswitch/etc/init || test 1
test -d /home/vagrant/build/usb_modeswitch/pkg/usb_modeswitch/etc/systemd/system -a -e /usr/bin/systemctl && install --mode=644 usb_modeswitch@.service /home/vagrant/build/usb_modeswitch/pkg/usb_modeswitch/etc/systemd/system || test 1
install -d /home/vagrant/build/usb_modeswitch/pkg/usb_modeswitch/usr/share/usb_modeswitch
install -d /home/vagrant/build/usb_modeswitch/pkg/usb_modeswitch/etc/usb_modeswitch.d
install -D --mode=644 40-usb_modeswitch.rules /home/vagrant/build/usb_modeswitch/pkg/usb_modeswitch/usr/lib/udev/rules.d/40-usb_modeswitch.rules
install --mode=644 -t /home/vagrant/build/usb_modeswitch/pkg/usb_modeswitch/usr/share/usb_modeswitch ./usb_modeswitch.d/*
==> Tidying install...
  -> Purging unwanted files...
  -> Removing libtool files...
  -> Removing static library files...
  -> Compressing man and info pages...
  -> Stripping unneeded symbols from binaries and libraries...
==> Creating package "usb_modeswitch"...
  -> Generating .PKGINFO file...
  -> Generating .MTREE file...
  -> Compressing package...
==> Leaving fakeroot environment.
==> Finished making: usb_modeswitch 2.2.0-1 (Mon Jan 12 09:39:36 UTC 2015)
[vagrant@vagrant-archlinux usb_modeswitch]$ 


Reference:
1. Install Software in Arch Linux from Source, using AUR or ABS

0 意見:

張貼留言