Az OpenBSD beemelte a tmux-ot; interjú a fejlesztővel

Címkék

Nemrégiben Nicholas Marriott (nicm@) importálta az OpenBSD base-be a tmux-ot. A tmux egy "terminal multiplexer", amely lehetővé teszi a hozzáférést több terminálhoz (vagy ablakhoz) egy terminálról. Aki nem tudja, hogy mire gondoljon, az gondoljon a GNU Screen egyszerű, modern, BSD licences alternatívájára. Az Undeadly ennek kapcsán interjút készített a fejlesztővel. Az interjú elolvasható itt.

Hozzászólások

Jobb mert szabadabb ^^

tmux vs screen egy evil gples ncurses programon.

Viszont egy nagyon jo dolog van benne a screennel szemben: ez tudja milyen programot inditottam el, es megvaltoztatja a tab cimet.

Hirtelen a hpux jutott eszembe, és a cikk címéből ha tüzes vassal kínoznak sem jöttem volna rá, hogy mi lehet az a tmux. :)

Megint egy olyan projekt, ami néhányakat biztosan boldogabbá tesz, de a bele fektetett munkát hasznosabban is el lehetett volna tölteni...

suckIT szopás minden nap! ZFS funkciók

akkor most ennek van hely bin/-ben, wake-nek meg nem? :)

--
When in doubt, use brute force.

Valaki bennfentes leirna roviden, hogy miert jobb a screen-nel? (licencet, es az interjuban emlegetett codebase quality-t leszamitva)

Három okból jobb (nekem) egyrészt, remekül lehet benne nem csak ablakok között váltani, hanem egy ablakon belül több panelt tudsz nyitni (egymás mellett láthatod a különböző termináljaidat, mintha több xtermet indítanál. Másrészt a synchronize-panes opcióval be tudod kapcsolni azt, hogy úgy viselkedjen, mint egy cssh (egy billentyűzet leütést multiplexelhetsz.
Harmadrészt remekül lehet szkriptelni, legyen itt egy példa: (Ne köss bele, fejből írom, a pontos szintaxisért nézd meg a manualt)

alias duo='tmux set-window-option synchronize-panes on; tmux split-window -h -c "ssh server2"; ssh server1'

Ez az alias azt csinálja, hogy függőlegesen kettévágja a terminálod, a jobb oldali terminál bessh-zik a server2 nevű gépre, a bal oldali pedig a server1 gépre, majd ha kiadsz bármi parancsot, az mind a két gépre kimegy.

kellemetes.

tmux forditas AIX alatt:

Kell neki a GNU make, a default-tal ugyanis szetszall a 'make: 1254-055 Dependency line needs colon or double colon operator' hibaval. A barhol mashol mukodo 'configure --help' itt nem megy. En az AIX curses-t akartam hasznalni. Az opciok ugy vannak bedrotozva mindenhova, eleg nagy takony igy, de majd megirom a szerzonek.

Tehat:

./configure

vi config.mk

# CPPFLAGS+= -I/usr/local/include/ncurses
CPPFLAGS+= -I/usr/include

vi tty-term.c

/* #include <ncurses.h> */
#include <curses.h>

vi Makefile

# LIBS+= -lncurses
LIBS+= -lcurses

vi GNUmakefile

# LIBS+= -lncurses
LIBS+= -lcurses

PATH=/usr/local/bin:$PATH make

---

Innentol piece of cake. ;-)

ooo, illetve van meg ez:


$ PATH=/usr/local/bin:$PATH sudo make install
install -d /usr/local/bin
/usr/bin/getopt: Not a recognized flag: d
Usage: install [-c DirectoryA] [-f DirectoryB] [-i] [-m] [-M Mode] [-O Owner]
[-G Group] [-S] [-n DirectoryC] [-o] [-s] File [DirectoryX ...]
make: *** [install] Error 2

Ilyennel is most talalkozom eloszor...

Mindegy, lesz..., innentol manualis cp, chown/chmod is megfelel.
Arra meg no comment, hogy root:bin lenne a tulajdonosa a binarisnak.

Valamiert a manpage sem jelenik meg rendesen:


$ man tmux
/usr/bin/nroff: 1004-114 Argument is not valid for .Dt.
line 18, file <standard input>

interjuban emlegetett codebase quality

Ütős ez így egymás alatt. Az meg, hogy ez az OpenBSD-hez készült kb. olyan mentség, amit mi mondtunk még a középiskolában a tanárnőnek, ha valamit kifogásolt a dolgozatunkban: majd az érettségin jól fogjuk csinálni!

suckIT szopás minden nap! ZFS funkciók

Meg mindig az latszik hogy gozotok sincs semmirol.
Pl.:

$ screen
^A+X

Key:
Again:
Screen used by Robert Nagy .
Password: ******
Screen used by Robert Nagy .
Password:

... no problem:

Password:^C
(x200s robert 254)$ screen -r

Voila!

--

Ezen kivul a tmux server-client implementacio ami a screenre nem igaz. Sot ha utannanezel te is raojssz mi a kulonbseg. A screen a szokasos GNU minoseggel rendelkezik, ezert tobbet nem is vartunk tole.
Inkabb menj es blogolj valami bullshitet, hogy fontosnak erezhesd magad.

> A screen a szokasos GNU minoseggel rendelkezik

...amit megtestesit az is, hogy aix-en a GNU screen xlc-vel (ibm proprietary ppc compiler, amivel az aix-et es osszerakjak) az aix curses library-vel egyetlen budos warning nelkul lefordul?

Bele is nezhetsz a tmux forrasaba magad is, hogy lasd, mirol beszelek. Persze NicM-nek mar szoltam irc-n, es valoszinuleg valami ki is lesz javitva a fentiekbol.

En alairom, hogy van igenytelen GNU kod is (pl gettext, glib, flex), de ebbol nem kell altalanositani.

Amugy kb 15 perce valtottam screen-rol tmux-ra, majd meglatjuk, hogyan valik be ;-)

He? Ezt igy most hogy? Nem ertem, mi a problema, nalam a ^A+X utan siman a sajat (PAM-os) jelszavammal (meg esetleg a screen passworddel) beleptet. Ha ez bug, akkor bug, de ezt jelenteni kell, nem pedig fikazni. Gondolom a tmux-nak is meglesznek a sajat bugjai.

Arrol nem beszelve, hogy a screen is server-client ha ezt olyan ertelemben hasznalod, hogy socketeken at lehet kapcsolodni az eppen futo screen serverhez. Gondolom a tmux is valami hasonlot csinal.

Valahogy en ezt meg mindig a meleg viz feltalalasanak erzem.
--


()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

akkor adott egy zart fw, amit te megcsinalsz, es el akarod adni, olyan modositasokkal, amit nem karsz kiadni, es pl pont a screen kodjat modositanad...
ilyenkor ket lehetoseged van,
a) vagy kiadod a megturkalt screennel, es varod, hogy ne deruljon ra feny (SFLC...)
//b) vagy nem raksz bele semmi ilyen toolt, es leprogramozod magadnak az egesze
b)vagy hasznalsz tmuxot es azt csinalsz vele, amit akarsz
___
info

Azert kivancsi lennek, mi az a cucc, amihez pont screen kellene. Ezzel egyutt meg mindig licenszhuszarkodasnak erzem a dolgot.
Peldaul, opcio az is, hogy csak a megturkalt screen kodjat adom ki. Elvben a GPL ugyanis nem kotelez a teljes forras megnyitasara, csak a modositott szoftverere (FIXME). Innentol veszti ertelmet az, amit mondasz.
--


()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

Ennek igy latod van ertelme.

Kulonben, nem ertem ezt az egesz licenszkerdest. Ezek szerint a szabad szoftver fogalom, mint olyan csak a BSD licensz alatt testesul meg? Akkor hulyeseg szabad szoftverrol beszelni. Most vagy szabad valami, vagy nem. Felig szabad - ilyen fogalom nem letezik. Ehhh, ez nekem magas nagyon. En, ha irok valamit, akkor azt lehet csinalni vele, amit akarnak. A licensz mezot meg kihuzom.
--


()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

Amugy ugy nezem, a FreeBSD 7.2-ben is benne van.

Egyebkent lol... ^A helyett ^B -t kell hasznalni... tenyleg ennyire muszaj kenyszeresen kulonbozni?
--


()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

Viszont a legtobb helyen a home billentyu ugyanezt csinalja, egy gombnyomassa redukalva a ^A ket gombnyomasat, tehat igazabol nem sok letjogosultsaga van. Cserebe a screen-rol atszokoknak sokkal egyszerubb lenne az elete.
--


()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.