File: customizing.dbk

package info (click to toggle)
debian-faq 13.1
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 6,540 kB
  • sloc: makefile: 176; perl: 116; sh: 58
file content (397 lines) | stat: -rw-r--r-- 15,724 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
<?xml version='1.0' encoding='utf-8'?>
<!-- -*- DocBook -*- -->
<chapter id="customizing"><title>Dostosowanie systemu Debian GNU/Linux do Twoich potrzeb</title>
<section id="papersize"><title>Skąd mogę mieć pewność, że wszystkie programy używają tego samego rozmiaru papieru?</title>
<para>
Zainstaluj pakiet <systemitem role="package">libpaperg</systemitem>.  Podczas
instalacji zostaniesz zapytany o domyślny rozmiar papieru, który ma być
używany w całym systemie.  Ustawienie to będzie przechowywane w pliku
<literal>/etc/papersize</literal>.
</para>
<para>
Użytkownicy mogą ustalić własny rozmiar papieru używając zmiennej
systemowej <literal>PAPERSIZE</literal>.  Więcej informacji uzyskasz na
stronie podręcznika systemowego
<citerefentry><refentrytitle>papersize</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
</para>
</section>

<section id="hardwareaccess"><title>Jak mogę udostępnić urządzenia peryferyjne bez narażania bezpieczeństwa systemu?</title>
<para>
Wiele plików urządzeń w katalogu <literal>/dev/</literal> należy do
pewnych, wcześniej zdefiniowanych, grup.  Na przykład
<literal>/dev/fd0</literal> należy do grupy <literal>floppy</literal>, a
<literal>/dev/dsp</literal> należy do grupy <literal>audio</literal>.
</para>
<para>
Jeśli chcesz żeby dany użytkownik miał dostęp do jednego z tych urządzeń
to po prostu dodaj go do grupy, do której należy to urządzenie.  Możesz to
zrobić na przykład tak:
</para>
<screen>
adduser użytkownik grupa
</screen>
<para>
W ten sposób nie będziesz musiał zmieniać praw dostępu urządzenia.
</para>
</section>

<section id="consolefont"><title>W jaki sposób załadować czcionkę konsoli podczas startu systemu?</title>
<para>
Pakiety <systemitem role="package">kbd</systemitem> oraz <systemitem
role="package">console-tools</systemitem> pozwalają to osiągnąć.  Dostosuj
odpowiednio do swoich potrzeb plik <literal>/etc/kbd/config</literal> lub
<literal>/etc/console-tools/config</literal>.
</para>
</section>

<section id="appdefaults"><title>W jaki sposób skonfigurować domyślne parametry aplikacji dla środowiska X11?</title>
<para>
Programy Debiana pod X'y instalują swoje zasoby do katalogu
<literal>/etc/X11/app-defaults/</literal>.  Jeśli chcesz dostosować aplikacje
X'ów globalnie to dokonaj zmiany w tych plikach.  Oznaczone są one jako
konfiguracyjne więc ich zawartość pozostanie niezmieniona podczas procesu
aktualizacji.
</para>
</section>

<section id="booting"><title>Wydaje się, że każda dystrybucja posiada inne procedury startu systemu. Jak to wygląda w Debianie?</title>
<para>
Jak wszystkie Uniksy, Debian startuje uruchamiając program
<literal>init</literal>.  Plik konfiguracyjny dla <literal>init</literal> (tj.
<literal>/etc/inittab</literal>) określa, że pierwszym wykonywanym skryptem
powinien być <literal>/etc/init.d/rcS</literal>.  Skrypt ten uruchamia
wszystkie skrypty z katalogu <literal>/etc/rcS.d/</literal> poprzez
bezpośrednie interpretowanie lub uruchamianie podprocesów interpretujących
(zależnie od rozszerzeń plików) w celu dokonania inicjalizacji, takiej jak:
sprawdzenie oraz zamontowanie systemów plików, załadowanie modułów,
uruchomienie usług sieciowych, ustawienie zegara i innych.  W dalszej
kolejności, w celu utrzymania zgodności ze starszymi wersjami, uruchamia
również skrypty (oprócz tych ze znakiem '.'  w nazwach) z katalogu
<literal>/etc/rc.boot/</literal>.  Wszystkie skrypty w tym katalogu są
zazwyczaj zarezerwowane do użytku administratora systemu.  Używanie ich jest
przestarzałą praktyką.
</para>
<para>
Po zakończeniu procedury startu, <literal>init</literal> wykonuje wszystkie
skrypty startowe z katalogu zależnego od domyślnego poziomu startu (domyślny
poziom startu określany jest przez wpis <literal>id</literal> w pliku
<literal>/etc/inittab</literal>).  Jak większość Uniksów zgodnych z System
V, Linux ma 7 poziomów startu (runlevels):
</para>
<itemizedlist>
<listitem>
<para>
0 (zatrzymanie systemu),
</para>
</listitem>
<listitem>
<para>
1 (tryb pojedynczego użytkownika),
</para>
</listitem>
<listitem>
<para>
2 do 5 (różne tryby wielodostępowe) i
</para>
</listitem>
<listitem>
<para>
6 (ponowne uruchomienie systemu).
</para>
</listitem>
</itemizedlist>
<para>
Systemy oparte na Debianie posiadają domyślny wpis id=2 co oznacza, że w
momencie wejścia w stan pracy wielodostępowej, domyślnym poziomem startu
będzie '2' oraz, że zostaną uruchomione skrypty z katalogu
<literal>/etc/rc2.d</literal>.
</para>
<para>
Tak naprawdę skrypty, w każdym z katalogów <literal>/etc/rcN.d/</literal>,
są tylko symbolicznymi dowiązaniami do skryptów z
<literal>/etc/init.d</literal>.  Jednak <emphasis>nazwy</emphasis> plików, z
katalogów <literal>/etc/rcN.d/</literal>, są tak nadane aby pokazać
<emphasis>sposób</emphasis> w jaki skrypty z <literal>/etc/init.d/</literal>
będą uruchamiane.  Przed wejściem do dowolnego poziomu startu wszystkie
skrypty zaczynające się literą 'K' zostaną uruchomione.  Te skrypty
usuwają usługi.  Następnie wykonane zostaną wszystkie skrypty zaczynające
się literą 'S'.  Te skrypty uruchamiają usługi.  Dwucyfrowa liczba, która
występuje po 'K' lub 'S' oznacza kolejność, w jakiej uruchamiają się
skrypty.  Mniejsza liczba oznacza, że skrypt uruchomi się wcześniej.
</para>
<para>
To podejście działa, ponieważ wszystkie skrypty z
<literal>/etc/init.d/</literal> pobierają jeden z argumentów: `start',
`stop', `reload', `restart' lub `force-reload' i wykonają zadanie określone
przez ten argument.  Skrypty te mogą być używane nawet po zakończeniu
rozruchu systemu w celu kontroli różnych procesów.
</para>
<para>
Na przykład, z argumentem `reload', polecenie:
</para>
<screen>
/etc/init.d/sendmail reload
</screen>
<para>
wyśle sygnał demonowi sendmail'a aby ponownie przeczytał i zinterpretował
swój plik konfiguracyjny.
</para>
</section>

<section id="custombootscripts"><title>Wygląda na to że Debian nie używa <literal>rc.local</literal> aby dostosować proces startu systemu. Jakie narzędzia zostały dostarczone do tego celu?</title>
<para>
Przypuśćmy, że system ma uruchomić skrypt <literal>foo</literal> podczas
startu systemu lub podczas przejścia w dany poziom startu (runlevel).  W
takiej sytuacji administrator systemu powinien:
</para>
<itemizedlist>
<listitem>
<para>
Umieścić skrypt <literal>foo</literal> w katalogu
<literal>/etc/init.d/</literal>.
</para>
</listitem>
<listitem>
<para>
Uruchomić polecenie Debiana <literal>update-rc.d</literal> z odpowiednimi
parametrami w celu ustanowienia dowiązań pomiędzy (określonymi w linii
poleceń) katalogami rc?.d, a <literal>/etc/init.d/foo</literal>.  W tym
przypadku '?'  jest cyfrą od 0 do 6 i oznacza odpowiedni poziom startu Systemu
V.
</para>
</listitem>
<listitem>
<para>
Ponownie uruchomić system.
</para>
</listitem>
</itemizedlist>
<para>
Polecenie <literal>update-rc.d</literal> ustanowi dowiązania w katalogach
rc?.d ze skryptem w <literal>/etc/init.d</literal>.  Każde dowiązanie
składać się będzie, w kolejności: z litery 'S' lub 'K', dwucyfrowej liczby
oraz nazwy skryptu.  Skrypty zaczynające się literą 'S' w
<literal>/etc/rcN.d/</literal> zostaną wykonane przy przejściu do poziomu
startu <literal>N</literal>.  Skrypty zaczynające się literą 'K' zostaną
wykonane przy wyjściu z poziomu startu <literal>N</literal>.
</para>
<para>
Można, na przykład, sprawić by skrypt <literal>foo</literal> wykonał się
podczas startu systemu poprzez umieszczenie go w katalogu
<literal>/etc/init.d/</literal> oraz utworzenie dowiązań przy pomocy
polecenia <literal>update-rc.d foo defaults 19</literal>.  Parametr 'defaults'
oznacza domyślne poziomy startu tzn.  od 2 do 5.  Parametr '19' daje
pewność, że <literal>foo</literal> zostanie uruchomiony wcześniej niż
skrypty o numerach 20 i wyższych.
</para>
</section>

<section id="interconffiles"><title>Jak system zarządzania pakietami radzi sobie z pakietami, zawierającymi pliki konfiguracyjne innych pakietów?</title>
<para>
Niektórzy użytkownicy chcieliby, na przykład, stworzyć nowy serwer
instalując grupę pakietów Debiana i lokalnie wygenerowane pakiety
zawierające pliki konfiguracyjne.  Zazwyczaj nie jest to dobry pomysł
ponieważ program <command>dpkg</command> nie będzie wiedział o istnieniu
plików konfiguracyjnych jeśli znajdują się one w innych pakietach.  Może
to doprowadzić do nadpisania konfliktowych plików gdy jeden z pakietów
oryginalnej ,,grupy'' zostanie uaktualniony.
</para>
<para>
Zamiast tego utwórz lokalny pakiet, który modyfikuje pliki konfiguracyjne
,,grupy'' pakietów Debiana, które Cię interesują.  Wtedy
<command>dpkg</command> i reszta systemu zarządzania pakietami będzie
wiedział, że pliki zostały zmodyfikowane przez lokalnego administratora i
nie będzie próbował ich nadpisać w czasie aktualizacji.
</para>
</section>

<section id="divert"><title>Jak mogę nadpisać plik instalowany przez inny pakiet tak żeby używana była moja wersja?</title>
<para>
Powiedzmy, że administrator lub lokalny użytkownik woli używać programu
,,login-local'' niż ,,login'', który dostarczany jest przez pakiet Debiana o
nazwie <systemitem role="package">login</systemitem> .
</para>
<para>
Nie należy:
</para>
<itemizedlist>
<listitem>
<para>
Nadpisywać pliku <literal>/bin/login</literal> plikiem
<literal>login-local</literal>.
</para>
</listitem>
</itemizedlist>
<para>
System zarządzania pakietami nie będzie wiedział o tej zmianie i po prostu
nadpisze Twój plik <literal>/bin/login</literal> jeśli
<literal>login</literal> (lub każdy inny pakiet dostarczający plik
<literal>/bin/login</literal>) zostanie zainstalowany lub uaktualniony.
</para>
<para>
Zrób raczej tak:
</para>
<itemizedlist>
<listitem>
<para>
Wykonaj:
</para>
<screen>
dpkg-divert --divert /bin/login.debian /bin/login
</screen>
<para>
aby każde przyszłe instalacje pakietu <systemitem
role="package">login</systemitem> zamiast zapisywać plik
<literal>/bin/login</literal> zapisywały go jako
<literal>/bin/login.debian</literal>
</para>
</listitem>
<listitem>
<para>
Następnie wykonaj:
</para>
<screen>
cp login-local /bin/login
</screen>
<para>
aby przenieść Twój lokalnie zbudowany program na właściwe miejsce.
</para>
</listitem>
</itemizedlist>
<para>
Więcej informacji znajdziesz w
<citerefentry><refentrytitle>dpkg-divert</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
</para>
</section>

<section id="localpackages"><title>W jaki sposób dodać do listy dostępnych pakietów moje lokalnie zbudowane pakiety tak, aby system zarządzania pakietami o nich wiedział?</title>
<para>
Wykonaj polecenie:
</para>
<screen>
dpkg-scanpackages BIN_KAT PLIK_NADP [PRZEDR_SCIEZKI] > moje_Pakiety
</screen>
<para>
gdzie:
</para>
<itemizedlist>
<listitem>
<para>
BIN_KAT jest katalogiem gdzie przechowywane są pliki archiwów Debiana (zwykle
mają rozszerzenia ,,.deb'').
</para>
</listitem>
<listitem>
<para>
PLIK_NADP (ang.  override file) jest plikiem, który modyfikowany jest przez
opiekunów wydania i, dla pakietów z dystrybucji main, zwykle znajduje się w
archiwum FTP Debiana jako <literal>indices/override.main.gz</literal>.  Możesz
zignorować ten plik dla lokalnych pakietów.
</para>
</listitem>
<listitem>
<para>
PRZEDR_SCIEZKI jest <emphasis>opcjonalnym</emphasis> parametrem, którego
wartość może zostać dołączona do nazwy tworzonego pliku
<literal>moje_Pakiety</literal>.
</para>
</listitem>
</itemizedlist>
<para>
Kiedy już plik <literal>moje_Pakiety</literal> zostanie utworzony powiadom o
tym system zarządzania pakietami wykonując polecenie:
</para>
<screen>
dpkg --merge-avail moje_Pakiety
</screen>
<para>
Jeśli używasz APT to możesz również dodać lokalne repozytorium do swojego
pliku
<citerefentry><refentrytitle>sources.list</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
</para>
</section>

<section id="diverse"><title>Niektórzy użytkownicy lubią mawk, inni gawk; jedni lubią vim'a, inni lubią elvis'a; niektórzy lubią trn, inni lubią tin. Jak Debian wspiera taką różnorodność upodobań?</title>
<para>
Istnieje wiele przypadków kiedy dwa pakiety dostarczają dwie różne wersje
programu o takiej samej funkcjonalności.  Użytkownicy mogą preferować jeden
z nich bardziej od drugiego z przyzwyczajenia, lub z powodu interfejsu
użytkownika, który dla danego pakietu jest, w jakiś sposób, bardziej
przyjazny niż interfejs drugiego.  Różni użytkownicy w tym samym systemie
mogą dokonać różnych wyborów.
</para>
<para>
Debian używa systemu pakietów ,,wirtualnych'' aby pozwolić administratorom
systemu na wybór (lub pozwolić wybrać użytkownikom) ulubione narzędzia,
gdy istnieją dwie lub więcej wersji z taką samą podstawową
funkcjonalnością, która zaspokoi wymagania zależności bez podawania nazwy
konkretnego pakietu.
</para>
<para>
Na przykład: w systemie zainstalowane są dwie różne wersje czytników grup
dyskusyjnych.  Serwer grup dyskusyjnych może 'zalecać' aby w systemie był
zainstalowany <emphasis>jakiś</emphasis> czytnik grup dyskusyjnych ale wybór
<literal>tin</literal>'a lub <literal>trn</literal>'a pozostawiony zostaje
użytkownikowi.  Działa to w ten sposób, że oba pakiety <systemitem
role="package">tin</systemitem> oraz <systemitem
role="package">trn</systemitem> dostarczają wirtualny pakiet <systemitem
role="package">news-reader</systemitem>.  <emphasis>Który</emphasis> program
zostanie wywołany zależy od dowiązania pliku z nazwą wirtualnego pakietu
<literal>/etc/alternatives/news-reader</literal> do wybranego pliku czytnika
np.  <literal>/usr/bin/trn</literal>.
</para>
<para>
Pojedyncze dowiązanie nie wystarcza aby wspierać pełne użycie
alternatywnych programów.  Strony pomocy i prawdopodobnie inne, powiązane z
programem, pliki muszą także zostać wybrane.  Skrypt Perl'a
<literal>update-alternatives</literal> dostarcza sposobu, który zapewnia, że
wszystkie pliki powiązane z danym pakietem zostaną wybrane jako domyślne dla
systemu.
</para>
<para>
Na przykład, aby sprawdzić jakie pliki wykonywalne dostarcza
'x-window-manager' uruchom:
</para>
<screen>
update-alternatives --display x-window-manager
</screen>
<para>
Jeśli chcesz to zmienić uruchom:
</para>
<screen>
update-alternatives --config x-window-manager
</screen>
<para>
i wykonaj instrukcje, które pojawią się na ekranie (po prostu naciśnij
klawisz z cyfrą, która znajduje się przy programie, który bardziej lubisz).
</para>
<para>
Jeśli z jakiegoś powodu pakiet nie zarejestruje się jako menedżer okien
(wyślij informacje o błędzie jeśli uznasz to za usterkę) lub jeśli
używasz menedżera okien z katalogu /usr/local (taki wybór nie pojawi się na
ekranie), możesz uaktualnić dowiązania poprzez parametry wywołania tak jak
na przykładzie poniżej:
</para>
<screen>
update-alternatives --install /usr/bin/x-window-manager \
  x-window-manager /usr/local/bin/wmaker-cvs 50
</screen>
<para>
Pierwszy parametr za `--install' jest dowiązaniem symbolicznym, które
wskazuje na /etc/alternatives/NAZWA, gdzie NAZWA jest drugim parametrem.
Trzeci parametr to program, do którego /etc/alternatives/NAZWA powinien
zostać dowiązany, a czwarty jest priorytetem (większe wartości wskazują,
że ta alternatywa, przy działaniu automatycznym, będzie wybrana z większym
prawdopodobieństwem).
</para>
<para>
Aby usunąć alternatywny wpis, który dodałeś uruchom po prostu:
</para>
<screen>
update-alternatives --remove x-window-manager /usr/local/bin/wmaker-cvs
</screen>
</section>

</chapter>