Find and replace with sed 
sed -i 's/ugly/beautiful/g' /home/bruno/old-friends/sue.txt
http://www.brunolinux.com/02-The_Termin ... h_Sed.html

[ add comment ]   |  [ 0 trackbacks ]   |  permalink
Linux: read line by line from file in a bash script  
while read line
do
echo "MAC=$line"
done < mac-hex-codes.txt > mac-hex-codes2.txt


[ add comment ]   |  [ 0 trackbacks ]   |  permalink
Linux: Red Hat Enterprise Linux 6 Beta Available  
Search for the torrent at http://torrent.ibiblio.org/.

[ add comment ]   |  [ 0 trackbacks ]   |  permalink
python: convert hex to ascii and ascii to hex 
The pythons module binascii is suitable for conversion between ascii and hex.

$ python
>>> import binascii
>>> binascii.unhexlify('7461696C202F7661722F6C6F672F6D65737361676573')
'tail /var/log/messages'


more at: http://blog.dispatched.ch/2009/12/09/py ... unhexlify/

[ add comment ]   |  [ 0 trackbacks ]   |  permalink
Linux: podpisy RPM balíčků 
pro vygenerování páru klíče
$ gpg --gen-key
$ gpg --list-keys
$ gpg --export -a xxx' > custom_RPM_package_key.txt


vlastní podpis balíčku během procesu tvorby balíčku
$ rpm -ba --sign package-version.spec

kontrola signatury
$ rpm --checksig package-version.i386.rpm

opětovné podepsání
$ rpm --resign package-version.i386.rpm

podepsání po vytvoření balíčku, dodatečně
$ rpm --addsign package-version.i386.rpm

import klíče vlastního veřejného klíče do RPM
rpm --import RPM-GPG-KEY

prohledání RPM databáze na obsažené klíče
$ rpm -qa gpg-pubkey*

zobrazení detailů pro imporotvané RPM klíče
$ rpm -qi gpg-pubkey-db42a60e

vyjmutí/zneplatnění klíče
$ rpm -e gpg-pubkey-keyhash

[ add comment ]   |  [ 0 trackbacks ]   |  permalink
Linux: vytváření a podepisování balíčků 
spec file:
soubor, který popisuje jakým způsobem bude balík generován a co bude obsahovat. spec file je návod pro příkaz rpmbuild jak a s jakými parametry zkompilovat zdrojový kód, kam provést instalaci a jaké akce je nutné provést před a po instalaci balíku. spec soubor obsahuje popis balíku, makra, soupis souborů a příkazy shellu.

tags:
pomocí tagů se definují vlastnosti balíku jak pro kompilaci, tak i pro instalaci a zařazení do rpm databáze. úplný tag se skládá z klíčového slova a hodnoty tagu <tag>:<hodnota>. popisy významu tagů jsou uvedeny zde: http://www.rpm.org/max-rpm/s1-rpm-inside-tags.html

Name:
Release:
Summary:
Vendor:
Copyright:
Distribution:
Icon:
Vendor:
URL:
Group:
Packager:
Provides:
Requires:
Conflicts:
Serial:
AutoReqProv:
ExcludeArch:
ExclusiveArch:
ExcludeOS:
ExclusiveOS:
Source:
Nosource:
Patch:

# vytvoření patche pro zdrojový kód. patche jsou stejně jako zdrojový tgzumístěny v adresáři ~/rpmbuild/SOURCES. vytvoření patche se provede použitím příkazu diff:
# diff -Naur sudosh2-1.0.3.vanilla/ sudosh2-1.0.3/ > \
# ~/rpmbuild/SOURCES/sudosh2-1.0.3.patch


NoPatch:
Prefix:
BuildRoot:
%description
%changelog

*Prefix = prefix tag je použit pokud je vytvářen relokovatelný balík, tj balík který lze instalovat do specifického adresáře od adresáře systémového kořene

*Buildroot = adresář kam je balík instalován během procesu vytváření balíku, například v případě, kdy by instalace binárek balíku při vytváření mohla kolidovat s funkcionalitou systému - například běžící SMTP a SMTP pro který se balík právě vytváří

*Requires tag může přesněji specifikovat verzi jiného balíku, na kterém je náš balík závislý (například Requires: bar >= 2.7-4, baz = 2.1-1)

makra:
makra zjednoduššují proces tvorby balíku a jsou uvozeny znakem %. při procházením soboru spec příkazem rpmbuild makra expandují do sekvencí příkazů které provádí specifické činnosti. tyto činnosti mohou být například získání zdrojového kódu z url (%setup), rozbalení zdrojového kódu (%setup) a opatchvonání zdrojového kódu. makra rovněž zvyšují čitelnost spec souboru a logicky jej rozdělují do jednotlivých sekcí.

<----------- část spec souboru definující jak se bude zdrojový kód kompilovat ---------->
%prep
<commands>
%setup
%patch
%build
<configure>
%install
<make install>
%clean
<make clean>
<----------- část, která se provádí při vlastní instalaci balíku na cílovém systému ---------->
%pre
<commands ie. check the system environment>
%post
<commands ie. chkconfig --level 3 mydaemon on>
%verifyscript
<commands ie. service mydaemon status>
%files
<soubory, které balík obsahuje>
elegantní cestou jak připravit seznam souborů je použití
adresáře výhradně určeného pro daný balík
(použití %topdir) a pomocí hvězdičkové konvence
zahrnutí všech souborů, které se vyskytují v daném adresáři

%files -f %{name}.lang
%defattr(-, root, root)
%doc AUTHORS COPYING ChangeLog NEWS README TODO
%{_bindir}/*
%{_libdir}/*.so.*
%{_datadir}/%{name}
%{_mandir}/man8/*

%preun
<commands ie. service mydaemon stop; chkconfig --level 3 mydaemon off>
%postun
<commands ie. rm -rf /var/log/mydaemon.log>


některá makra %scripts mají možnost ovlivnit jejich chování pomocí přepínačů, popis je k dispozici zde: http://www.rpm.org/max-rpm/s1-rpm-inside-macros.html
v rámci balíku je jednou z hlavních sekcí sekce definující soubory začleněné v balíku. sekce %files je zdokumentována zde: http://www.rpm.org/max-rpm/s1-rpm-insid ... tives.html

podmínky:
v rámci spec souboru je rovněž možné definovat podmínky pro zpracování některých částí kódu pomocí %ifarch, %ifnarch, %ifos, %ifnos, %else, %endif

proměnné:
všechny proměnné prostředí uvedené níže mohou být použity ve spec souboru během procesu tvorby balíku.hodnoty proměnných jsou nastaveny automaticky během procesu tvorby balíku. http://www.rpm.org/max-rpm/s1-rpm-inside-scripts.html

RPM_SOURCE_DIR, RPM_BUILD_DIR, RPM_DOC_DIR, RPM_OPT_FLAGS,
RPM_ARCH, RPM_OS, RPM_ROOT_DIR, RPM_BUILD_ROOT, RPM_PACKAGE_NAME
RPM_PACKAGE_VERSION, RPM_PACKAGE_RELEASE

dokumentace pro vývojáře:
/usr/share/doc/rpm-4.4.2.3/

vlastní prostředí:
pokud je balík překládán pod účtem běžného uživatele pak tento nemá možnost zápisu do systémem definovaných adresářů /usr/src/redhat/{BUILD,RPMS,S{OURCE,PEC,RPM}S}. proto je nutné v domovském adresáři uživatele definovat vlastní strukturu odpovídající struktuře vyžadované příkazem rpmbuild. tato adresářová struktura je definována v souboru ~/.rpmmacros, který je čten při každém spuštění příkazem rpmbuild.

$ mkdir -p ~/rpmbuild/{BUILD,RPMS,S{OURCE,PEC,RPM}S}
$ cat ~/.rpmmacros
                        
# RPM directory macros
%_topdir %(echo "$HOME")/rpmbuild
%_builddir %_topdir/BUILD
%_rpmdir %_topdir/RPMS
%_sourcedir %_topdir/SOURCES
%_specdir %_topdir/SPECS
%_srcrpmdir %_topdir/SRPMS
%_buildroot %_topdir/%{name}-root

# Macros mimicking autoconf variables
%_sysconfdir %_buildroot/etc
%_prefix usr/local
%_exec_prefix %_prefix
%_bindir %_buildroot/exec_prefix/bin
%_lib %_buildroot/lib (lib64 on 64bit systems)
%_libdir %_buildroot/%_exec_prefix/%{_lib}
%_libexecdir %_buildroot/%_exec_prefix/libexec
%_sbindir %_buildroot/%_exec_prefix/sbin
%_sharedstatedir %_buildroot/var/lib
%_datadir %_buildroot/%_prefix/share
%_includedir %_buildroot/%_prefix/include
%_oldincludedir %_buildroot/usr/include
%_infodir %_buildroot/usr/share/info
%_mandir %_buildroot/usr/local/share/man
%_localstatedir %_buildroot/var
%_initddir %_buildroot/%_sysconfdir/rc.d/init.d

# GPG signature related
%_signature gpg
%_gpg_name xxx xxx


# $ rpmbuild -ba [ --sign ] [ --buildroot ] DIR some.spec
#
# [ --buildroot ] overrides local .rpmmacros
#

# create a patch if necessary. patches should be placed in
# ~/rpmbuild/SOURCES. construct patch using diff as in example.
# diff -Naur sudosh2-1.0.3.vanilla/ sudosh2-1.0.3/ > \
# ~/rpmbuild/SOURCES/sudosh2-1.0.3.patch

Summary: sw package for Linux
Name: sw
Requires: libgcc
Conflicts: xxx
Packager: xxx@xxx.com
License: Open Software License 3.0 (OSL3.0)
Version: 1.0.3
Release: 0
Vendor: SourceForge
BuildArch: x86_64
Group: Applications/System
Source0: sw-1.0.3.tar.gz
Patch0: sw-1.0.3.patch
BuildRoot: %_buildroot
#AutoReqProv: no
URL: http:\\alchy.org

%description
popis k balíku na více řádků

%prep

%setup

%patch0 -p1

# %build
./configure --with-defshell=/bin/bash \
--prefix=%_buildroot \
--bindir=%_bindir --sysconfdir=%_sysconfdir --mandir=%_mandir
make

%install
make install
make clean

%pre

%preun

%postun

%changelog
* Tue Apr 15 2010 xxx xxx
- Initial release


[ add comment ]   |  [ 0 trackbacks ]   |  permalink
The object of this expedition is to see if we can find any traces of the last expedition 


[ add comment ]   |  [ 0 trackbacks ]   |  permalink
Python scripts, unique occurentce and set 
# counts number of unique occurences of the cr terminated sting
# in a file (python3)

import os

unique_ip = set()
list_ip = []

myFile = "d:\\tmp\ip_test.txt"

if not ( os.path.isfile( myFile ) ):
print("File does not exist")
exit

file = open( myFile, 'r')
for line in file.readlines():
unique_ip.add( line )
list_ip.append( line )
file.close()

for item in unique_ip:
print( item.rstrip() , ";", list_ip.count( item ) )

# alternative:
# print ([(item, list_ip.count(item)) for item in unique_ip])



[ add comment ]   |  [ 0 trackbacks ]   |  permalink
klogd: The Kernel Logging Dæmon 
Linux Journal article about kernel logging. The article explains explains /proc/kmsg, printk, sys_syslog and other interesting kernel logging how-to.

klogd reads kernel log messages and helps process and send those messages to the appropriate files, sockets or users. This month we discuss memory address resolution and how to modify klogd's default behavior using command-line switches.


http://www.linuxjournal.com/article/4058?page=0,0


[ add comment ]   |  [ 0 trackbacks ]   |  permalink
Izer - plzenska mluva  


[ add comment ]   |  [ 0 trackbacks ]   |  permalink

<<First <Back | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | Next> Last>>