LFS-RPM/TODO

167 lines
5.0 KiB
Plaintext

find network hosts:
for ip in $(seq 1 254); do ping -c 1 192.168.1.$ip>/dev/null; [ $? -eq 0 ] && echo "192.168.1.$ip UP" || : ; done
SCP:
Copy the file "foobar.txt" from a remote host to the local host
$ scp your_username@remotehost.edu:foobar.txt /some/local/directory
Copy the file "foobar.txt" from the local host to a remote host
$ scp foobar.txt your_username@remotehost.edu:/some/remote/directory
Copy the directory "foo" from the local host to a remote host's directory "bar"
$ scp -r foo your_username@remotehost.edu:/some/remote/directory/bar
Copy the file "foobar.txt" from remote host "rh1.edu" to remote host "rh2.edu"
$ scp your_username@rh1.edu:/some/remote/directory/foobar.txt \
your_username@rh2.edu:/some/remote/directory/
Copying the files "foo.txt" and "bar.txt" from the local host to your home directory on the remote host
$ scp foo.txt bar.txt your_username@remotehost.edu:~
Copy the file "foobar.txt" from the local host to a remote host using port 2264
$ scp -P 2264 foobar.txt your_username@remotehost.edu:/some/remote/directory
Copy multiple files from the remote host to your current directory on the local host
$ scp your_username@remotehost.edu:/some/remote/directory/\{a,b,c\} .
$ scp your_username@remotehost.edu:~/\{foo.txt,bar.txt\} .
Update rpm to 4.14.2.1:
* update setup.sh, download 4.14.2.1 tarball
* update tools.sh, build 4.14.2.1
* update base.sh: not needed
* update rpm.spec, see below
* drop python dependency
#TARBALL: ftp.rpm.org/releases/rpm-4.14.x/rpm-4.14.2.1.tar.bz2
#TARBALL: http://download.oracle.com/berkeley-db/db-6.0.20.tar.gz
#MD5SUM: fdb8b8857f103b087b6aed5b78dd9b4f;rpm-4.14.2.1.tar.bz2
#MD5SUM: f73afcb308aefde7e6ece4caa87b22a9;SOURCES/db-6.0.20.tar.gz
#-----------------------------------------------------------------------------
Summary: Package manager
Name: rpm
Version: 4.14.2.1
Release: 1
License: GPLv2
URL: http://rpm.org
Group: LFS/BASE
Vendor: Elizabeth
Source0: ftp.rpm.org/releases/rpm-4.14.x/%{name}-%{version}.tar.bz2
Source1: http://download.oracle.com/berkeley-db/db-6.0.20.tar.gz
Source2: macros
Requires: filesystem
%description
Package manager
#-----------------------------------------------------------------------------
%prep
%setup -q -n %{name}-%{version}
%setup -q -T -D -a 1 -n %{name}-%{version}
sed -i 's/--srcdir=$db_dist/--srcdir=$db_dist --with-pic/' db3/configure
%build
ln -vs db-6.0.20 db
./configure \
--prefix=%{_prefix} \
--program-prefix= \
--sysconfdir=/etc \
--with-crypto=openssl \
--with-cap \
--with-acl \
--without-external-db \
--without-archive \
--without-lua \
--disable-dependency-tracking \
--disable-silent-rules \
--disable-rpath \
--disable-plugins \
--disable-inhibit-plugin
# --enable-python python bindings
# --with-python=2.7 python bindings
# --with-archive build rpm2archive - requires libarchive
# --with-lua build with lua support
tools.sh:
--prefix=/tools \
--program-prefix= \
--sysconfdir=/tools/etc \
--with-crypto=openssl \
--without-external-db
--without-archive \
--without-lua \
--disable-dependency-tracking \
--disable-silent-rules \
--disable-rpath \
--disable-plugins \
--disable-inhibit-plugin
--disable-shared \
--enable-static \
--enable-zstd=no \
--enable-lmdb=no \
Read base.spec to get list of packages to install
BASE.SPEC GENERATOR:
TODO for base.sh
Make a base.spec generator
list= $( ls rpm dir )
for i in $list; do
case $i in
filespec*) ;;
*) LIST+="Requires: ${i} " ;;
esac
done
write header
write requires
write end
then build base package
RPM PACKAGE INSTALLER:
fetch package name start with base ( sort unique )
determine binary package name insert into name = ${REPOPATH}/package name-* to process
do until - process names, de dupe names
requirements = $( rpm -qp --requires ${RPMS}/${RPM_ARCH}/${RPM_BINARY}): > ${REQUIRES}/${RPM_NAME} 2>&1 || true
work string = $( rpm <name> requirements )
determine requires [ rpm -qp --requires <filespec> ] if / then filespec add to rpm list
determine requires [ rpm -qp --requires <libary ] ] if ( then library add to rpm list
determine requires [ rpm -qp --requires <package> ] else package add to rpm list
binary name = strip current name from list of package names
no more
LIST+="${REPOPATH}/${i##Requires:}* "
rpm -qp --requires ${RPMS}/${RPM_ARCH}/${RPM_BINARY} > ${REQUIRES}/${RPM_NAME} 2>&1 || true
# rpm -q --whatprovides [file name]
for i in ${LIST}; do
find requires
msg_line "installing: ${i} :"
rpm --upgrade --verbose --hash --noscripts --root ${ROOTPATH} --dbpath ${DBPATH} "${REPOPATH}/${i}-*"
msg_success
done
./configure \
--prefix=/usr \
--program-prefix= \
--sysconfdir=/etc \
--with-crypto=openssl \
--with-cap \
--with-acl \
--without-external-db \
--without-archive \
--without-lua \
--disable-dependency-tracking \
--disable-silent-rules \
--disable-rpath \
--disable-plugins \
--disable-inhibit-plugin