Posts tagged размисли

linux cp mv directory with progress bar

0

Едно от нещата който най много ме дразнят е когато в cli копирам/местя голяма директоря да нямам идея какъв процент от целият размер съм претъркалял. За съжаление cp/mv нямат подобни сили и се налага да прибегнем към алтернативни варианти. Има доста възможности но на мен лично най ми допада използването на rsync вместо pc/mv. В него има всичко вградено – запазване на правата над файлове и директории, прогрес бар както и възможност да изтрива копираните файлове.

В общи линии си направих 2 alias-а които вършат повече от чудна работа:


alias cpi='rsync -a --info=progress2'
alias mvi='rsync -a --info=progress2 --remove-source-files'

Firefox working with Bitcoin URI

0

От време на време ми се налага да ползва Bitcoin URI и когато ми се наложи клиента ми не се е асоциирал е дразнещо, че трянва да правя всичко на ръка. Продцедурата е изключително тривиална по въпросната асоциация. Може да бъде синтезирана в следните 5 точки

  1. Отворете в адрес бара си about:config
  2. Създайте нов ключ от тип boolean (клис с десен бутон на мишката -> new -> boolean)
  3. Въведете име: network.protocol-handler.expose.bitcoin
  4. Изберете стойност false
  5. Следващият път когато кликнете на Bitcoin URI ще бъдете попитани за избор път до Bitcoin клиента си. Бъдете сигурни че е с изпълними права.

Аз лично използвам MultiBit клиента който е има всичката необходима фунционалност и е достатъчно пъргавичък

storage размисли

0

Когато правите RAID слоя над него го направете на LVM така ще си спестите много терзания ако сте задали не съвсем добре преценени размери на дяловете. Идеята е че ако не ползвате XFS или ZFS или някоя друга FS която позволява преоразмеряване на дяловете както EXT2/3/4 например нещата стават голяма кочина като осъзнаеш, че не си направил най- доброто делене. В общи линии получавате максимална пластичност ако е необходимо намаляне или увеличаване на размеря на дяла и същевременно сте подсигурени против неприятни случки на данните ви. В общи линии се получава нещо от този вид

| / | /var | /usr | /home  |
 --------------------------
|       LVM Volume         |
 --------------------------
|       RAID Volume        |
 --------------------------
| Disk 1 | Disk 2 | Disk 3 | 

Защо Debian linux

0

В последните няколко дни водим разговор с един приятел сис админ тип яйцето или кокошката – Debian vs Slackware. Както обикновено когато дебатираме с него няма победител аз си обичам моята религия той неговата, и двамата имаме достатъчно причини да го правим. Но покрай всичките бръщолевци ми отново се запитах защо. Защо използвам Debian на сървъри десктоп и декстоп машини ( дори си бях пуснал chroot на android-а ми). Тук се сещам и за твъдението на един мой бивш шеф:

Знаеш ли кой е най добрият Linux?

– Този който си успял да си инсталираш пръв.

В интерес на истината Slackware 9 мисля че беше първата ми дистрибуция която сам си инсталирах 😀 Но нещата се променят. Та ето някой от моите причини защо Debian:

1. Защото се поддържа лесно – зависимостите между пакетите. Дам това е отявления минус на slackware или плюс зависи как е погледнато. Зависимостите между пакетите е „екстра“ която улеснява кардинално инсталацията поддръжката и менаджирaнаето на една система. Когато искам да си инсталирам php не е необходимо да знам дали имам и останалите библиотеки необходими за да запали нормално. Спомням си един случай преди няколко години когато инсталирах на един web server и всички мъки докато попълня зависимостите да се компилират необходимите модули по php-то. Дам от друга страна получаваш двоичен пакет компилиран с някакви опции които може да не работят правилно за твоя случай или пък просто да липсва необходими опции. Еми за тия случай си има apt-get source дърпаш си сорска от който е билднат пакета плюс всички кръпки които са сложени. Модификации и модерации винаги са възможни по личен вкус и усмотрение.

2. Защото има netinstall cd – минимален image с основни пакети. Малко се чудя това колко би било полезно за нови потребители но за всеки системен администратор минималната инсталация си е преимущество. Инсталират се по малко пакети по малко сервизи. Изгражда се системата почти от 0. Така имаш сигурността че ще работи точно по начина по които очакваш – ни по малко ни повече. Преди няколко дни исках да сваля slackware cd1 за x64 система и бях неприятно изненадан че съществува само dvd вариант на х64 варианта им. Само за х86 има опция да се свали cd1 досататъчно за минимална инсталация. Не че е болка за умиране по време на инсталацията ще се изберат необходимите пакети но все пак цяло dvd за скелета на един сървър 😀 WTF??? Debian netinstall image ти предлага възможността пак за избор на какви допълнителни пакети да се издърпат от интернет като позитива е, че ще бъдат последната версия в огледалото stable/testing/unstable.

3. Защото има супер елементарен инсталатор – конзолата не е плашеща. Тук нещата са малко 50/50 защото и Slackware също е с изключително лесен инсталатор с единственото изключение което е ключово разделянето на диска се налага да се напишат малко команди в конзолата което е плашещо за някои потребители. fdisck или cfdisk не са толкова страшни но факта че не е вградено в инсталатора само по себе си е недостатък. Веднъж създаден дяла после се форматира от инсталатора но до тогава трябва да си почел малко. При Debian нещата са улеснени в това отношение по подразбиране инсталатора ти помага за това , но ако държиш да процеса да го контролираш по от близо винаги можеш да извикаш shell-а.

4. Защото debian екипа са отворени към странни идеи. Хммм някой слакър тука би ми се изсмял грубо, че такива изрудщини като кръстосан linux с BSD ядро не е необходим, но пък защо не. Хората преди са се смеели и на твърдението че, земята е кръгла. 😀 Ако не се лъжа Debian работи на  най- голяма колекция от хардуер 😉

5. По подразбиране не е с KDE – много мразим KDE. А както е всеизвестно Патрик е голям радетел на KDE и винаги това е била подразбиращата се графична среда в Slack-а. Още при първата ми среща с KDE разбрах че това не е моя тип GUI освен всичко друго много ми напомняше и за Windows

http://www.youtube.com/watch?v=10k3JwZUXlc

git commint / push error

0

Да движиш някакъв проект в който се програмира активно без контрол над версиите в днешно време е пълно безумие. Като цяло има множество опции bazaar , mercurial , git , svn . Така тука ако ще очаквате да обяснявам кой контрол над версиите е по добър и защо няма да е. При нас използваме git. Причини много – лесно се настройва, много е гъвкав, написан е от Линус Торвалдс за да обслужва Linux Kernel версиите, последното са поне 2 причини 😉 . Днес ми се наложи да създам ново хранилище, че се започна нов проект. Реално съм създавал малко хранилища и то преди много време когато са ни трябвали и съм забравил тънките моменто по това. Създавам хранилището блъснах няколко файла за първото съхранение всичко мина точно. Самата настройка на хранилището беше стандартна:


git init
echo "Short project's description" > .git/description
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
git commit -a
touch .git/git-daemon-export-ok

В общи линии нищо което да не е наред. След това реших да тествам от отдалечена машина да съхраня съдържание и при опита да го push-на ми изгърмя с грозното съобщение:

Pushing to git://gitHost/project
remote: error: refusing to update checked out branch: refs/heads/master
remote: error: By default, updating the current branch in a non-bare repository
remote: error: is denied, because it will make the index and work tree inconsistent
remote: error: with what you pushed, and will require ‘git reset –hard’ to match
remote: error: the work tree to HEAD.
remote: error:
remote: error: You can set ‘receive.denyCurrentBranch’ configuration variable to
remote: error: ‘ignore’ or ‘warn’ in the remote repository to allow pushing into
remote: error: its current branch; however, this is not recommended unless you
remote: error: arranged to update its work tree to match what you pushed in some
remote: error: other way.
remote: error:
remote: error: To squelch this message and still keep the default behaviour, set
remote: error: ‘receive.denyCurrentBranch’ configuration variable to ‘refuse’.
To git://gitHost/project
! [remote rejected] master -> master (branch is currently checked out)
error: failed to push some refs to ‘git://gitHost/project’

Така очевидно се опитвам да комитвам в главното дърво на проекта и софтуера вежливо ме режи. Като цяло нямам никакво намерение да правя допълнителен бранч понеже хората които участват по проектите са си ясни и ред други причини. Тука идва момента да отбележа че съм дефинирал много некадърно заглавието но това е друг момент. Като цяло решението на проблема е тривиално в .git/config на проекта ви трябва да добавите следната директива:


[receive]
denyCurrentBranch = false

След това всичко си идва на мястото.

http://www.youtube.com/watch?v=16bRiH5zfOY

Go to Top