Stanisław P.

Stanisław P. Software designer

Temat: Uniwersalne środowisko własne

Hej,
chciałem się dowiedzieć, czy macie jakieś ciekawe własne patenty na $HOME, który jest taki sam na każdym hoście? Nie mówię tutaj o hostach w obrębie firmy, czy innego małego środowiska, gdzie można to zsynchronizować przez nfs, czy inny gfs. Chodzi mi o całkiem niezależne hosty.

W skrócie co już mam:
- centralny host z repozytorium
- w repo są wszelkie .vim / .zshrc / .ssh/config / ...
- są tam też local_apps.i386 / local_apps.x86_64 / ... które są linkowane do ~/local_apps - w nich standardy - nowy vim/zsh/svn/ssh/python/... zlinkowane statycznie
- skrypt, który robi pull/update przy logowaniu
- automatyczne linkowanie tych plików z repo do ~/.cośtam
- oskryptowane kopiowanie całego tego rozwiązania na nowy host jednym poleceniem

Czy robicie coś podobnego? Jeśli tak, to czy pominąłem coś ciekawego co jest w waszych rozwiązaniach?

Temat: Uniwersalne środowisko własne

Ja mam po prostu swój dysk przenośny USB.
Do czego Ci jest potrzebna taka synchronizacja?

konto usunięte

Temat: Uniwersalne środowisko własne

U mnie każdy host ma swój wyjątkowy $HOME. Reszta ciekawych rzeczy przenoszona jest na Omnii, a skrypty trzymane w SVNie.
Stanisław P.

Stanisław P. Software designer

Temat: Uniwersalne środowisko własne

Wojciech Małota:
Ja mam po prostu swój dysk przenośny USB.
Do czego Ci jest potrzebna taka synchronizacja?
Głównie do tego, żebym nie musiał się zastanawiać na jakim hoście pracuję... Często loguje się na wszystko od freebsd przez prehistorycznego centosa po gentoo i pełno innych rzeczy pomiędzy. Jeśli wiem, że wszystko działa na nich tak samo, wszędzie vim jest z tymi samymi opcjami, end/home wszędzie działają zamiast produkować krzaczki, etc. to mam łatwiejsze życie (gdzie "wszędzie" == 79 hostów w moim .ssh/config)

Temat: Uniwersalne środowisko własne

Stanisław Pitucha:
Często loguje się na wszystko od freebsd przez prehistorycznego centosa po gentoo i pełno innych rzeczy pomiędzy. Jeśli wiem, że wszystko działa na nich tak samo, wszędzie vim jest z tymi samymi opcjami, end/home wszędzie działają zamiast produkować krzaczki, etc. to mam łatwiejsze życie (gdzie "wszędzie" == 79 hostów w moim .ssh/config)

Na systemach *BSD czy też komercyjnych UNIX'ach jak HP-UX czy AIX nie ma default'owo programu vim(1). Na FreeBSD jest nvi(1), świetna implementacja napisana przez Keith'a Bostic'a, a na HP-UX jest oryginalny vi(1) Bill'a Joy'a. dot.exrc jest czytane przez
vim(1) ale jego opcje są często niekompatybilne z innymi implementacjami vi(1) -- nie mówiąc już o totalnie skopanym trybie ex(1). Także zakładam, że wszędzie instalujesz także na swoich hostach vim(1) i robisz hardlinki z /usr/bin/vi do /usr/bin/vim -- karkołomne zadanie moim zdaniem.

Moim skromnym zdaniem "uniwersalne środowisko własne" powinno przede wszystkim cechować się prostotą implementacji we wszystkich warunkach. Możesz pięknie znać swojego vim'a(1) ze swoimi super napisanymi opcjami, lecz co będzie gdy nagle znajdziesz się w środowisku gdzie jedynym edytorem tekstu jest ed(1) czy też może tylko cat(1)? :)

Osobiście staram się trzymać jak najbliżej default'owych wartości i ustawień w danych systemach operacyjnych -- czym mniej własnej twórczości, tym prościej dane środowisko później odzyskać, choćby i "from scratch". Staram się także używać aplikacji, które
występują na jak najszerszej ilości systemów operacyjnych z "default'u". Dlatego będąc przez wiele lat użytkownikiem tcsh(1), używam w tej chwili jedynie ksh(1), gdyż Korn Shell występuje praktycznie wszędzie -- od starych maszyn HP-UX aż do najnowszego RHEL.

A co do trzymania swoich osobistych skryptów, plików, notatek to mam w swojej domowej serwerowni jedną maszynę FreeBSD dedykowaną do tego -- po ssh(1) nietrudno się do niej dostać i przeczytać co potrzeba.Andrzej Kosela edytował(a) ten post dnia 25.12.09 o godzinie 23:59
Stanisław P.

Stanisław P. Software designer

Temat: Uniwersalne środowisko własne

Andrzej Kosela:
Także zakładam, że wszędzie instalujesz także na swoich hostach vim(1) i robisz hardlinki z /usr/bin/vi do /usr/bin/vim -- karkołomne zadanie moim zdaniem.
Nie... vim siedzi sobie skompilowany pod dany system w moim home'ie. Na połowie z hostów na których pracuję jestem zwykłym userem. + czemu miałbym psuć środowisko innym.
Moim skromnym zdaniem "uniwersalne środowisko własne" powinno przede wszystkim cechować się prostotą implementacji we wszystkich warunkach.
Jak kto lubi - mi spersonalizowane środowisko zaoszczędza czas.
Możesz pięknie znać swojego vim'a(1) ze swoimi super napisanymi opcjami, lecz co będzie gdy nagle znajdziesz się w środowisku gdzie jedynym edytorem tekstu jest ed(1) czy też może tylko cat(1)? :)
Właśnie dlatego jestem w stanie zainstalować całe środowisko na nowym hoście jedną komendą. 2 min. i będę używał własnego vim'a. Jeśli inni chcą się bawić ed'em, nie ma problemu ;)
czym mniej własnej twórczości, tym prościej dane środowisko później odzyskać, choćby i "from scratch".
Dlatego swoje trzmam pod kontrolą wersji. Nie muszę nic odzyskiwać...
A co do trzymania swoich osobistych skryptów, plików, notatek to mam w swojej domowej serwerowni jedną maszynę FreeBSD dedykowaną do tego -- po ssh(1) nietrudno się do niej dostać i przeczytać co potrzeba.
Ogólne skrypty wszędzie idą ze mną... a reszty nie czuję potrzeby kopiować. Notatki siedzą na osobistych maszynach i w repozytorium... wystarczy.
Michał Panasiewicz

Michał Panasiewicz Administrator
systemów, sieci i
aplikacji.

Temat: Uniwersalne środowisko własne

Rozwiazania które mogą się przydać:
pam_mount i wszędzie masz podmontowany swój katalog $HOME (linux).
Unison (na razie jeszcze nie korzystałem).Michał Panasiewicz edytował(a) ten post dnia 25.12.09 o godzinie 23:38

Temat: Uniwersalne środowisko własne

Stanisław Pitucha:
Andrzej Kosela:
Także zakładam, że wszędzie instalujesz także na swoich hostach vim(1) i robisz hardlinki z /usr/bin/vi do /usr/bin/vim -- karkołomne zadanie moim zdaniem.
Nie... vim siedzi sobie skompilowany pod dany system w moim home'ie. Na połowie z hostów na których pracuję jestem zwykłym userem. + czemu miałbym psuć środowisko innym.

Nie to żebym się czepiał, ale to chyba jeszcze bardziej karkołomne zadanie kompilować vim'a(1) pod konkretny system -- akurat u mnie sporo by tego musiało być -- od HP-UX 11.11 aż po stare wersje FreeBSD 4.x a kończąc na AIX'ach... no tak, a może lepiej i szybciej po prostu używać starego dobrego vi(1) bez "bajerów" vim'a(1)?

PS> Jeśli swoje "środowisko" tworzysz rzeczywiście w bardzo krótkim czasie jednym skryptem to być może, że dla Ciebie takie rozwiązanie się sprawdza. Rozumiem też, że każdy ma swoje przyzwyczajenia do pracy (jedni lubią syntax highlighting, drudzy nie etc.)Andrzej Kosela edytował(a) ten post dnia 26.12.09 o godzinie 00:09

Temat: Uniwersalne środowisko własne

Ja tam nie mam takiego problemu, emacs działa wszedzie tak samo ;]. Najlepiej rzeczywiście wszystko co się pisze trzymać w jakims VCSie typu GIT, wtedy edytujemy lokalnie, push, pull na docelowym hoście i jako bonus wszystkie zmiany ładnie w logu z opisem zmian, datą i możliwością cofnięcia się do wcześniejszej wersji jedną komendą.

No i w większości unixowatych jest jakiś klon pico/nano zainstalowany domyślnie ;]

Temat: Uniwersalne środowisko własne

Mariusz Gronczewski:
Ja tam nie mam takiego problemu, emacs działa wszedzie tak samo ;]. Najlepiej rzeczywiście wszystko co się pisze trzymać w jakims VCSie typu GIT, wtedy edytujemy lokalnie, push, pull na docelowym hoście i jako bonus wszystkie zmiany ładnie w logu z opisem zmian, datą i możliwością cofnięcia się do wcześniejszej wersji jedną komendą.

No i w większości unixowatych jest jakiś klon pico/nano zainstalowany domyślnie ;]

Piszesz o ee(1) z FreeBSD? :)

Temat: Uniwersalne środowisko własne

FreeBSD uzywalem moze z 2 razy i mialem tam emacsa ;]

konto usunięte

Temat: Uniwersalne środowisko własne

Stanisław Pitucha:
Hej,
Interesowales sie moze AFS?

chciałem się dowiedzieć, czy macie jakieś ciekawe własne patenty na $HOME, który jest taki sam na każdym hoście? Nie mówię tutaj o hostach w obrębie firmy, czy innego małego środowiska, gdzie można to zsynchronizować przez nfs, czy inny gfs. Chodzi mi o całkiem niezależne hosty.

W skrócie co już mam:
- centralny host z repozytorium
- w repo są wszelkie .vim / .zshrc / .ssh/config / ...
- są tam też local_apps.i386 / local_apps.x86_64 / ... które są linkowane do ~/local_apps - w nich standardy - nowy vim/zsh/svn/ssh/python/... zlinkowane statycznie
- skrypt, który robi pull/update przy logowaniu
- automatyczne linkowanie tych plików z repo do ~/.cośtam
- oskryptowane kopiowanie całego tego rozwiązania na nowy host jednym poleceniem

Czy robicie coś podobnego? Jeśli tak, to czy pominąłem coś ciekawego co jest w waszych rozwiązaniach?
Stanisław P.

Stanisław P. Software designer

Temat: Uniwersalne środowisko własne

Przemysław M.:
Interesowales sie moze AFS?
Tak - ale doszedłem tylko do tego, że bez roota nie zamontuje tego na systemach gdzie AFS nie jest dostępny. Fuse też nie wszędzie istnieje... Niestety, bo bardzo mi się idea AFS podoba.

konto usunięte

Temat: Uniwersalne środowisko własne

Stanisław Pitucha:
Hej,
chciałem się dowiedzieć, czy macie jakieś ciekawe własne patenty na $HOME, który jest taki sam na każdym hoście?

Tak.

/bin/rm -rf $HOME/* $HOME/.??*

:-)

konto usunięte

Temat: Uniwersalne środowisko własne

Osobiście mam serwerek ze skryptami trzymanymi w lokalnym CVS. Na każdym serwerku, gdzie muszę coś zrobić synchronizuję sobie skrypty z wykorzystaniem unison (jeden z przepisów z książki Dru Lavigne). Oczywiście unison korzysta z SSH, tak więc jest bezpieczenie

konto usunięte

Temat: Uniwersalne środowisko własne

Stanisław Pitucha:
Hej,
chciałem się dowiedzieć, czy macie jakieś ciekawe własne patenty na $HOME, który jest taki sam na każdym hoście? Nie mówię tutaj o hostach w obrębie firmy, czy innego małego środowiska, gdzie można to zsynchronizować przez nfs, czy inny gfs. Chodzi mi o całkiem niezależne hosty.

Czy robicie coś podobnego? Jeśli tak, to czy pominąłem coś ciekawego co jest w waszych rozwiązaniach?


Hmm.. kiedys jak sie bawilem to napisalem takie 2 skrypty na ustawienie wlasnego environment w home directory. Szukalem czegos co mi stworzy moje przenosne home i jak skoncze prace to bede mogl swoje zmiany wziac ze soba.
Ta wersja jest troche okrojona, bo to jest co napisalem jakies 3 lata temu:

#!/bin/ksh

banner EG - ENV
echo "Ernest Environment Started"

## Vars
#

E='/home/'
F='/.kshrc'
G=$(whoami)
IAP=$E$G$F # Invoked Admin Profile
HOME=$E$G

date

## Checking Who am i
#

# check if in sudoers if user

## Checking permissions of current directory #
#

if [ ! -w $PWD ]; then
echo " Error, you don't have permissions to write to this directory."
echo " Please contact Administrator or change permissions of $PWD."
echo " Operations Aborted.."
exit 1
else
echo "Permissions for current directory............. OK"
fi

## setup ENV - dirs
#
echo " Preparing dirs.."

mkdir ~/EGscripts
mkdir ~/var
mkdir ~/exe
mkdir ~/dat
mkdir ~/bin
mkdir ~/test
mkdir ~/alias

## setup aliases
#
echo " Setting up script with alliases.."

touch ~/alias/EGaliases.ksh
echo "alias h='cd ~'" >> $HOME/alias/EGaliases.ksh
echo "alias show='pwd;ls'" >> $HOME/alias/EGaliases.ksh
echo "alias c='clear'" >> $HOME/alias/EGaliases.ksh
echo "alias d='date'" >> $HOME/alias/EGaliases.ksh
echo "alias lr='ls -R'" >> $HOME/alias/EGaliases.ksh
chmod +x $HOME/alias/EGaliases.ksh

## record profile
#
echo " Recording current profile.."

cat /etc/profile >> $HOME/EGscripts/EGprofile
sleep 2

## check & setup .bashrc file - direct aliases
# for all terminals
#

if [ -f $IAP ]; then
if [ -w $IAP ]; then
echo " bashrc file exists and is ready for Admin updates"
cp $IAP $IAP_`date | awk '{print $1 $2 $3 $6}'`.bkp

## Invoking kshrc file
#
echo "Adding new section to your bash profile file.."
echo " ############# ADMIN ALIASES AND FUNCTIONS ##########" >> $IAP
echo "" >> $IAP
echo " alias p='cd -' >> $IAP
echo " alias ifc='ifconfig' >> $IAP
echo " alias ll='ls -l' >> $IAP
echo " alias vib='sudo vi ~/.bashrc' >> $IAP
echo " alias h='cd ~' >> $IAP
echo " alias c='clear' >> $IAP
echo " pinggoogle='ping -c 3 http://google.com' >> $IAP
echo " quit='sudo init 0' >> $IAP
echo "" >> $IAP
echo "" >> $IAP
echo " datef() {
echo `date` | awk '{ print \$1 \$2 \$3 \$6}'
}" >> $IAP

echo "showips() {
ifconfig | grep encap | awk '{print \$1}' | uniq -u | grep -v \"encap\" >> file1dev.txt;ifconfig | grep \"inet addr\" | awk -F: '{print \$2}' | awk '{print \$1}' >> file1ips.txt;paste file1dev.txt file1ips.txt > listdevips.txt;rm -rf file1ips.txt file1dev.txt;cat listdevips.txt
}" >> $IAP

echo " killfirefox() {
sudo kill `ps -ax |grep \"firefox\"| awk '{print $1}'|head -n 2| head -n 1`
}" >> $IAP

echo "terminals() {
gnome-terminal --geometry=87x21 |gnome-terminal --geometry=87x21 |gnome-terminal --geometry=87x21 |gnome-terminal --geometry=87x21
}" >> $IAP
## terminal cmd will work if font is Monospace 9 ##

echo "looplist() {
echo \"Provide directory: \"
read directory
TEXT1=\"Long list for files in $directory\"
while : ;do date; echo $TEXT1; ls -l $directory; sleep 4; clear;done
}" >> $IAP

echo "pingh() {

echo \"type ip or hostname: \"
read ip
ping -c 3 $ip
}" >> $IAP

echo " checkversion() {

if [ -f /etc/debian_version ]; then

echo \"Version from debian_version file:\"
cat /etc/debian_version
echo \"-----------------------------------\"
else
echo \" Info from lsb_release\"
lsb_release
fi

echo \"-----------------------------------\"
echo \"Info from /etc/issue file: \"
cat /etc/issue
echo \"-----------------------------------\"
echo \"Info from /etc/*-release:\"
cat /etc/*-release
}" >> $IAP

echo " showfunctions() {
cat ~/.bashrc | grep \"()\" |grep -v \"grep\" | awk '{print $1}'
}" >> $IAP

echo "setupip() {
printf \"Provide interface: \"
read int
printf \"Provide ip address: \"
read ipad
printf \"Provide netmask: \"
read mask
printf \"Provide broadcast: \"
read broad
/sbin/ifconfig $int $ipad netmask $mask broadcast $broad
}" >> $IAP

## PUT MORE FUNCTIONS/ALIASES HERE AS NEEDED ##

echo " set -o vi" >> $IAP

"Profile file exist but you can't write to it"
fi
else
echo " bashrc does not exist"
echo " commands will be saved only to current session"
echo " and to your alias files"
fi

## MESSAGES
#

echo "Modify your alias/EGaliases.ksh script !!! & run it with . ./"
sleep 2
echo "You are in: "
pwd
sleep 1
echo "This is list of the files in current directory: "
ls

----------------------------------------------------------------- done.ksh

#!/bin/ksh

banner EG-ENV SAVE
echo "Ernest Environment is saving all files"

## Vars
#

E='/home/'
F='/.kshrc'
G=$(whoami)
IAP=$E$G$F # Invoked Admin Profile
HOME=$E$G

## Cleanup files and directories
#

# Add functions to ask if there are Admin files in other dirs then
# $HOME or different dirs
#

tar cvf EnvEG.tar $HOME/*

echo .;sleep 1; echo ..;sleep 1;echo ...;
echo "File EnvEG.tar created/updated succesfully !!! "
sleep 3

## Cleanup Aliases/Functions, Cleanup bash profile
#

touch $HOME/removealiases.ksh

echo "Removing aliases..."
unalias "d"
unalias "show"
unalias "c"
unalias "h"
unalias "lr"

sleep 1
echo "Done"

banner EG-ENV STOP
echo "Ernest Environment is deleting all files from Home directory"
date
echo .; echo . ; echo .;echo ..;echo ...;sleep 1;

rm -rf bin exe var alias dat test EGscripts
echo "Done"
sleep 1
echo "Thank you, for using EG-ENV "
banner BYE
pwd;ls

konto usunięte

Temat: Uniwersalne środowisko własne

Ernest Gulik:
Hmm.. kiedys jak sie bawilem to napisalem takie 2 skrypty na ustawienie wlasnego environment w home directory.

Bawiąc się dalej ... popatrz na daty :)
Stanisław P.

Stanisław P. Software designer

Temat: Uniwersalne środowisko własne

Skoro już się bawimy w archeologie:

Bardzo bezpieczne te skrypty ;)
"rm -rf bin exe var alias dat test EGscripts" bez `cd` wcześniej.

Animacje "echo .;sleep 1; echo ..;sleep 1;echo ...;" :)

Co do "while : ;do date; echo $TEXT1; ls -l $directory; sleep 4; clear;done", to polecam `man watch`.

"echo " alias vib='sudo vi ~/.bashrc' >> $IAP" ... naprawdę? sudo?

Dużo plików konfiguracyjnych nie jest wogóle obsługiwanych niestety... Zdecydowanie chodziło mi o coś bardziej inteligentnego.

konto usunięte

Temat: Uniwersalne środowisko własne

Stanisław Pitucha:
Skoro już się bawimy w archeologie:

Bardzo bezpieczne te skrypty ;)
"rm -rf bin exe var alias dat test EGscripts" bez `cd` wcześniej.

Animacje "echo .;sleep 1; echo ..;sleep 1;echo ...;" :)

Co do "while : ;do date; echo $TEXT1; ls -l $directory; sleep 4; clear;done", to polecam `man watch`.

"echo " alias vib='sudo vi ~/.bashrc' >> $IAP" ... naprawdę? sudo?

Dużo plików konfiguracyjnych nie jest wogóle obsługiwanych niestety... Zdecydowanie chodziło mi o coś bardziej inteligentnego.


No wlasnie to jest stare. A nie latwiej by bylo napisac cos wlasnego?
Mysle pomysl tego jest dobry tylko kazdy musi zedytowac to do wlasnych potrzeb.
Teraz studiuje ksiazke na temat wlasnie profilu wlasnego:
"Tricks of the UNIX Masters" - Russel G. Sage
i jest tam pare ciekawostek co mozna sobie uzyc.
Teraz pewnie taki skrypcik moglby zajac ladny kawalek przekrecania kulka u myszki :).
Co do echo - no comments please :). To jest historia.
Co do rm.. - no tak musi byc to zedytowane a swoja droga jestem ciekaw czy ktos w ogule kiedys odpalil to na "/" na partycji? albo jakies lepsze przypadki?

Moim zdaniem jezeli chcesz cos naprawde dobrego to najlepiej cos napisz co ci bedzie robilo to co chcesz.
Stanisław P.

Stanisław P. Software designer

Temat: Uniwersalne środowisko własne

Ernest Gulik:
Moim zdaniem jezeli chcesz cos naprawde dobrego to najlepiej cos napisz co ci bedzie robilo to co chcesz.
No więc jak można przeczytać w pierwszym poście - już to dawno zrobiłem...



Wyślij zaproszenie do