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
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
|
<!--
The FreeBSD Documentation Project
The FreeBSD Brazilian Portuguese Documentation Project
Original revision: r39170
-->
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
<!ENTITY % articles.ent PUBLIC "-//FreeBSD//ENTITIES DocBook FreeBSD Articles Entity Set//PTBR">
%articles.ent;
]>
<article>
<articleinfo>
<title>Guia Rápido do FreeBSD para Usuários
&linux;</title>
<authorgroup>
<author>
<firstname>John</firstname>
<surname>Ferrell</surname>
</author>
</authorgroup>
<copyright>
<year>2008</year>
<holder>The FreeBSD Documentation Project</holder>
</copyright>
<releaseinfo>$FreeBSD$</releaseinfo>
<legalnotice id="trademarks" role="trademarks">
&tm-attrib.freebsd;
&tm-attrib.linux;
&tm-attrib.intel;
&tm-attrib.redhat;
&tm-attrib.unix;
&tm-attrib.general;
</legalnotice>
<abstract>
<para>O objetivo deste documento é familiarizar
rapidamente os usuários intermediários e
avançados de &linux; com o FreeBSD.</para>
</abstract>
</articleinfo>
<sect1 id="intro">
<title>Introdução</title>
<para>Este documento irá destacar as diferenças
entre &os; e &linux; para que os usuários
intermediários e avançados possam rapidamente
se familiarizar com os conceitos básicos do FreeBSD.
Esta é apenas uma rápida introdução
técnica, ela não tenta discutir as
diferenças <quote>filosóficas</quote> entre os
dois sistemas operacionais.</para>
<para>Este documento assume que você já tem o &os;
instalado. Se você não tem o &os; instalado ou
precisa de ajuda com o processo de instalação,
por favor, consulte o capítulo <ulink
url="&url.base;/doc/en_US.ISO8859-1/books/handbook/install.html">
Instalando o FreeBSD</ulink> no Handbook.</para>
</sect1>
<sect1 id="shells">
<title><literal>Shells</literal>: Sem Bash?</title>
<para>Usuários vindos do &linux; são frequentemente
surpreendidos por não encontrarem o
<application>Bash</application> como o
<literal>shell</literal> padrão no &os;. De fato, o
<application>Bash</application> nem mesmo está
presente na instalação padrão. Em vez
disso, o &os; usa o &man.tcsh.1; como <literal>shell</literal>
padrão. Embora o <application>Bash</application> e
seus outros <literal>shells</literal> favoritos estejam
disponíveis na <ulink url="article.html#SOFTWARE">
Coleção de <literal>Ports</literal>
</ulink> do &os;.</para>
<para>Se você instalar outros <literal>shells</literal>, o
&man.chsh.1; poderá ser usado para definir o
<literal>shell</literal> padrão dos usuários.
Contudo, é recomendável que o
<literal>shell</literal> padrão do
<username>root</username> permaneça inalterado. A
razão para isso é que
<literal>shells</literal> não incluídos na
base do sistema são normalmente instalados em
<filename>/usr/local/bin</filename> ou
<filename>/usr/bin</filename>. Caso ocorra um
problema no sistema de arquivos no qual estão localizados
o <filename>/usr/local/bin</filename> e o
<filename>/usr/bin</filename>, eles não poderão
ser montados. Neste caso, o usuário
<username>root</username> não teria acesso ao seu
<literal>shell</literal> padrão, o que o impediria de
efetuar login. Por este motivo uma segunda conta
<username>root</username>, a conta <username>toor</username>,
foi criada para uso com <literal>shells</literal> que
não fazem parte da base do sistema. Leia o
<literal>FAQ</literal> de segurança para obter
informações sobre a <ulink
url="&url.base;/doc/en_US.ISO8859-1/books/faq/security.html#TOOR-ACCOUNT">conta toor</ulink>.</para>
</sect1>
<sect1 id="software">
<title>Pacotes e <literal>Ports</literal>: Adicionando programas
no &os;</title>
<para>Além do tradicional método &unix; de
instalação de programas (baixar o código
fonte, extrair, editar o código fonte, e compilar),
o &os; oferece dois outros métodos para instalar
aplicações: pacotes e <literal>ports</literal>.
Uma lista completa de todos os <literal>ports</literal> e
pacotes disponíveis pode ser encontrada <ulink
url="http://www.freebsd.org/ports/master-index.html">aqui</ulink>.</para>
<sect2 id="packages">
<title>Pacotes</title>
<para>Pacotes são aplicações
pré-compiladas, o equivalente no &os; ao
<filename>.deb</filename> nos sistemas baseados no
Debian/Ubuntu e ao <filename>.rpm</filename> nos
sistemas baseados no Red Hat/Fedora. Pacotes
são instalados usando &man.pkg.add.1;. Por exemplo,
o seguinte comando instala o
<application>Apache 2.2</application>:</para>
<screen>&prompt.root; <userinput>pkg_add <replaceable>/tmp/apache-2.2.6_2.tbz</replaceable></userinput></screen>
<para>Usar a opção <option>-r</option>
dirá ao &man.pkg.add.1; para baixar automaticamente
o pacote e instalá-lo, juntamente com quaisquer
dependências que ele possua:</para>
<screen>&prompt.root; <userinput>pkg_add -r <replaceable>apache22</replaceable></userinput>
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6.2-release/Latest/apache22.tbz... Done.
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6.2-release/All/expat-2.0.0_1.tbz... Done.
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6.2-release/All/perl-5.8.8_1.tbz... Done.
[snip]
To run apache www server from startup, add apache22_enable="YES"
in your /etc/rc.conf. Extra options can be found in startup script.</screen>
<note>
<para>Se você está rodando uma versão de
<literal>release</literal> do &os; (6.2, 6.3, 7.0, etc.,
geralmente instalada a partir de um CD-ROM) o
<command>pkg_add -r</command> vai baixar o pacote compilado
especificamente para esta versão. Este pacote
<emphasis>pode não</emphasis> ser a versão
mais atual da aplicação. Você pode
usar a variável <envar>PACKAGESITE</envar> para
sobrescrever este comportamento padrão. Por
exemplo, ajuste <envar>PACKAGESITE</envar> para <ulink
url="ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6-stable/Latest/"></ulink>
para baixar os pacotes mais recentes compilados para a
série 6.X.</para>
<para>Você pode ler mais sobre as versões do
&os; no artigo <ulink
url="&url.base;/doc/en_US.ISO8859-1/articles/version-guide/">
Escolhendo a Versão do &os; Certa para Você</ulink>.</para>
</note>
<para>Para mais informações sobre pacotes, por
favor, consulte a seção 4.4 do Handbook do
&os;: <ulink
url="&url.base;/doc/en_US.ISO8859-1/books/handbook/packages-using.html">
Usando o Sistema de Pacotes</ulink>.</para>
</sect2>
<sect2 id="ports">
<title><literal>Ports</literal></title>
<para>O segundo método para instalação
de aplicações no &os; é a
Coleção de <literal>Ports</literal>.
A Coleção de <literal>Ports</literal>
é um <foreignphrase>framework</foreignphrase> de
<filename>Makefiles</filename> e
<foreignphrase>patches</foreignphrase> especialmente
customizados para a instalação de vários
programas a partir do código fonte no &os;. Ao
instalar um <literal>port</literal> o sistema irá
baixar o código fonte, aplicar qualquer
<foreignphrase>patch</foreignphrase> necessário,
compilar o código, e instalar a
aplicação. O mesmo processo será
aplicado para todas as suas dependências.</para>
<para>A Coleção de <literal>Ports</literal>, por
vezes designada como a árvore de
<literal>ports</literal>, pode ser encontrada em
<filename>/usr/ports</filename>. Isto assumindo que a
Coleção de <literal>Ports</literal> foi
instalada durante o processo de instalação do
&os;. Se a Coleção de <literal>Ports</literal>
não foi instalada, ela pode ser adicionada a partir
dos discos de instalação usando
&man.sysinstall.8;, ou baixada dos servidores do &os; usando
&man.csup.1; ou &man.portsnap.8;. Instruções
detalhadas para a instalação da
Coleção de <literal>Ports</literal> podem ser
encontradas na <ulink
url="&url.base;/doc/en_US.ISO8859-1/books/handbook/ports-using.html">
seção 4.5.1</ulink> do Handbook.</para>
<para>A instalação de um <literal>port</literal>
é tão simples (geralmente) quanto entrar no
diretório do <literal>port</literal> desejado e
iniciar o processo de compilação. O exemplo
seguinte instala o <application>Apache 2.2</application> a
partir da Coleção de
<literal>Ports</literal>:</para>
<screen>&prompt.root; <userinput>cd /usr/ports/www/apache22</userinput>
&prompt.root; <userinput>make install clean</userinput></screen>
<para>Um grande benefício do uso do
<literal>ports</literal> para instalar programas é a
possibilidade de personalizar as opções de
instalação. Por exemplo, ao instalar o
<application>Apache 2.2</application> a partir do
<literal>ports</literal>, você poderá habilitar
o <application>mod_ldap</application> definindo a
variável <makevar>WITH_LDAP</makevar> ao executar
&man.make.1;:</para>
<screen>&prompt.root; <userinput>cd /usr/ports/www/apache22</userinput>
&prompt.root; <userinput>make WITH_LDAP="YES" install clean</userinput></screen>
<para>Por favor, leia a seção 4.5 do Handbook do
&os;, <ulink
url="&url.base;/doc/en_US.ISO8859-1/books/handbook/ports-using.html">
Usando a Coleção de
<literal>Ports</literal></ulink>, para maiores
informações sobre a Coleção de
<literal>Ports</literal>.</para>
</sect2>
<sect2 id="which">
<title><literal>Ports</literal> ou pacotes, qual eu devo usar?</title>
<para>Pacotes são apenas <literal>ports</literal>
pré-compilados, então na prática é
uma questão de instalarmos a partir do código
fonte (<literal>ports</literal>) contra instalarmos de um
pacote binário. Cada método tem seus
próprios benefícios:</para>
<itemizedlist>
<title>Pacotes (binário)</title>
<listitem><simpara>Instalação rápida
(a compilação de grandes
aplicações pode ser um tanto
demorada).</simpara></listitem>
<listitem><simpara>Você não precisar saber como
compilar o programa.</simpara></listitem>
<listitem><simpara>Não é necessário
instalar compiladores no seu sistema.</simpara></listitem>
</itemizedlist>
<itemizedlist>
<title><literal>Ports</literal> (código fonte)</title>
<listitem><simpara>Possibilidade de personalizar as
opções de instalação. (Pacotes
normalmente são compilados com as
opções padrões. Com o
<literal>ports</literal> você pode personalizar
várias opções, como a
compilação de módulos adicionais ou
a mudança do <foreignphrase>path</foreignphrase> de
instalação
padrão.)</simpara></listitem>
<listitem><simpara>Você pode aplicar seus
próprios <foreignphrase>patches</foreignphrase> se
assim desejar.</simpara></listitem>
</itemizedlist>
<para>Se você não tem qualquer requisito especial,
o sistema de pacotes provavelmente vai se adequar
muito bem à sua situação. Se
você for precisar personalizar a
instalação, o <literal>ports</literal> é
a melhor opção. (E lembre-se, se você
precisa personalizar a instalação, mas prefere
pacotes, você pode compilar um pacote personalizado a
partir do <literal>ports</literal> usando
<command>make</command> <maketarget>package</maketarget> e,
em seguida, copiar o pacote para outros servidores.)</para>
</sect2>
</sect1>
<sect1 id="startup">
<title>Inicialização do Sistema: Onde estão
os <foreignphrase>run-levels</foreignphrase>?</title>
<para>O &linux; usa o sistema <literal>SysV init</literal>,
enquanto o &os; usa o tradicional <literal>BSD-style</literal>
&man.init.8;. Sob o <literal>BSD-style</literal> &man.init.8;
não existem <foreignphrase>run-levels</foreignphrase> e
nem <filename>/etc/inittab</filename>, em vez disso a
inicialização é controlada pelo
utilitário &man.rc.8;. O <literal>script</literal>
<filename>/etc/rc</filename> lê
<filename>/etc/defaults/rc.conf</filename> e
<filename>/etc/rc.conf</filename> para determinar quais
serviços serão iniciados. Os serviços
especificados são, então, inicializados rodando
os <literal>scripts</literal> de inicialização
correspondentes em <filename>/etc/rc.d/</filename>
e <filename>/usr/local/etc/rc.d/</filename>. Esses
<literal>scripts</literal> são similares aos
<literal>scripts</literal> localizados em
<filename>/etc/init.d/</filename> nos sistemas &linux;.</para>
<sidebar>
<para><emphasis>Por que existem dois locais para
<literal>scripts</literal> de inicialização de
serviços?</emphasis> Os <literal>scripts</literal>
encontrados em <filename>/etc/rc.d/</filename> são
para aplicações que são parte da
<quote>base</quote> do sistema. (&man.cron.8;, &man.sshd.8;,
&man.syslog.3;, e outros.) Os <literal>scripts</literal> em
<filename>/usr/local/etc/rc.d/</filename> são para
aplicações instaladas pelo usuário, como
<application>Apache</application>,
<application>Squid</application>, etc.</para>
<para><emphasis>Qual é a diferença entre a
<quote>base</quote> do sistema e as aplicações
instaladas pelo usuário?</emphasis> O &os; é
desenvolvido como um sistema operacional completo.
Em outras palavras, o <literal>kernel</literal>, bibliotecas
do sistema, e utilitários de nível de
usuário (como &man.ls.1;, &man.cat.1;, &man.cp.1;,
etc.) são desenvolvidos juntos e lançados como
um só. Isso é designado como
<quote>base</quote> do sistema. As aplicações
instaladas pelo usuário são
aplicações que não fazem parte da
<quote>base</quote> do sistema, como
<application>Apache</application>,
<application>X11</application>,
<application>Mozilla Firefox</application>, etc. Estas
aplicações instaladas pelo usuário
são geralmente instaladas usando os <ulink
url="article.html#SOFTWARE">Pacotes e a Coleção
de <literal>Ports</literal></ulink>. A fim de mantê-las
separadas da <quote>base</quote> do sistema, as
aplicações dos usuário são
normalmente instaladas sob <filename>/usr/local/</filename>.
Portanto, os binários instalados pelo usuário
residem em <filename>/usr/local/bin/</filename>, arquivos de
configuração em
<filename>/usr/local/etc/</filename>, e assim por
diante.</para>
</sidebar>
<para>Os Serviços são ativados espeficificando
<literal><replaceable>NomeDoServiço</replaceable>_enable="YES"</literal>
em <filename>/etc/rc.conf</filename> (&man.rc.conf.5;).
Dê uma olhada em
<filename>/etc/defaults/rc.conf</filename> para visualizar os
padrões do sistema, essas configurações
padrões podem ser sobrescritas por
configurações em
<filename>/etc/rc.conf</filename>. Quando instalar
aplicações adicionais não deixe de
analisar a documentação para determinar
como ativar qualquer serviço associado.</para>
<para>O seguinte trecho do <filename>/etc/rc.conf</filename> ativa
o &man.sshd.8; e o <application>Apache 2.2</application>. Ele
também determina que o <application>Apache</application>
deve ser iniciado com SSL.</para>
<programlisting># enable SSHD
sshd_enable="YES"
# enable Apache with SSL
apache22_enable="YES"
apache22_flags="-DSSL"</programlisting>
<para>Uma vez que o serviço foi ativado em
<filename>/etc/rc.conf</filename>, ele pode ser inicializado
pela linha de comando (sem precisar reinicializar o
sistema):</para>
<screen>&prompt.root; <userinput><replaceable>/etc/rc.d/sshd</replaceable> start</userinput></screen>
<para>Se o serviço não foi ativado, ele pode ser
inicializado pela linha de comando usando
<option>forcestart</option>:</para>
<screen>&prompt.root; <userinput><replaceable>/etc/rc.d/sshd</replaceable> forcestart</userinput></screen>
</sect1>
<sect1 id="network">
<title>Configuração da rede</title>
<sect2 id="interfaces">
<title>Interfaces de Rede</title>
<para>Em vez do identificador genérico
<emphasis>ethX</emphasis>, que o &linux; usa para identificar
uma interface de rede, o &os; usa o nome do driver do
dispositivo de rede seguido por um número como
identificador. A seguinte saída do &man.ifconfig.8;
mostra duas interfaces de rede &intel Pro 1000
(<devicename>em0</devicename> e <devicename>em1</devicename>):
</para>
<screen>&prompt.user; <userinput>ifconfig</userinput>
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=b<RXCSUM,TXCSUM,VLAN_MTU>
inet 10.10.10.100 netmask 0xffffff00 broadcast 10.10.10.255
ether 00:50:56:a7:70:b2
media: Ethernet autoselect (1000baseTX <full-duplex>)
status: active
em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=b<RXCSUM,TXCSUM,VLAN_MTU>
inet 192.168.10.222 netmask 0xffffff00 broadcast 192.168.10.255
ether 00:50:56:a7:03:2b
media: Ethernet autoselect (1000baseTX <full-duplex>)
status: active</screen>
</sect2>
<sect2 id="ipaddress">
<title>Configuração IP</title>
<para>Um endereço IP pode ser atribuído a uma
interface de rede usando &man.ifconfig.8;. No entanto, para
mantê-lo persistente entre as
reinicializações, a configuração
deve ser incluída em <filename>/etc/rc.conf</filename>.
O seguinte exemplo configura o <literal>hostname</literal>, o
endereço IP, e o <literal>gateway</literal>
padrão:</para>
<programlisting>hostname="server1.example.com"
ifconfig_em0="inet 10.10.10.100 netmask 255.255.255.0"
defaultrouter="10.10.10.1"</programlisting>
<para>Use a seguinte sintaxe para configurar a interface para
DHCP:</para>
<programlisting>hostname="server1.example.com"
ifconfig_em0="DHCP"</programlisting>
</sect2>
</sect1>
<sect1 id="firewall">
<title><literal>Firewall</literal></title>
<para>Como o <application>IPTABLES</application> no &linux;, o
&os; também oferece um <literal>firewall</literal> ao
nível de <literal>kernel</literal>; atualmente o &os;
oferece três opções de
<literal>firewalls</literal>:</para>
<itemizedlist>
<listitem><simpara><ulink url="&url.base;/doc/en_US.ISO8859-1/books/handbook/firewalls-ipfw.html">IPFIREWALL</ulink></simpara></listitem>
<listitem><simpara><ulink url="&url.base;/doc/en_US.ISO8859-1/books/handbook/firewalls-ipf.html">IPFILTER</ulink></simpara></listitem>
<listitem><simpara><ulink url="&url.base;/doc/en_US.ISO8859-1/books/handbook/firewalls-pf.html">PF</ulink></simpara></listitem>
</itemizedlist>
<para>O <application>IPFIREWALL</application>, ou
<application>IPFW</application> (o comando para gerenciar um
conjunto de regras <application>IPFW</application> é
&man.ipfw.8;), é o <literal>firewall</literal>
desenvolvido e mantido pelos desenvolvedores do &os;. O
<application>IPFW</application> pode ser integrado com
&man.dummynet.4; para prover a capacidade de controle de
tráfego e simular diferentes tipos de conexões de
rede.</para>
<para>Amostra de uma regra do <application>IPFW</application> para
permitir uma conexão de entrada do
<application>SSH</application>:</para>
<programlisting>ipfw add allow tcp from any to me 22 in via $ext_if</programlisting>
<para><application>IPFILTER</application> é um aplicativo
de <literal>firewall</literal> desenvolvido por
Darren Reed. Ele não é específico
para o &os; e foi portado para vários sistemas
operacionais, incluindo NetBSD, OpenBSD, SunOS, HP/UX, e
Solaris.</para>
<para>Amostra do comando <application>IPFILTER</application> para
permitir uma conexão de entrada do
<application>SSH</application>:</para>
<programlisting>pass in on $ext_if proto tcp from any to any port = 22</programlisting>
<para>O último aplicativo de <literal>firewall</literal>,
<application>PF</application>, é desenvolvido pelo
projeto OpenBSD. O <application>PF</application> foi criado
como um substituto para o <application>IPFILTER</application>.
Como tal, a sintaxe do <application>PF</application> é
muito similar à do <application>IPFILTER</application>.
O <application>PF</application> pode ser integrado com
&man.altq.4; para prover recursos de QoS.</para>
<para>Amostra do comando <application>PF</application> para
permitir uma conexão de entrada do
<application>SSH</application>:</para>
<programlisting>pass in on $ext_if inet proto tcp from any to ($ext_if) port 22</programlisting>
</sect1>
<sect1 id="updates">
<title>Atualizando o &os;</title>
<para>Existem três métodos para atualizar um
sistema &os;: a partir do código fonte,
atualização binária, e a partir dos
discos de instalação.</para>
<para>A atualização a partir do código
fonte é a mais demorada, mas por outro lado é
a que oferece a maior flexibilidade. O processo envolve a
sincronização de uma cópia local do
código fonte do sistema a partir dos servidores
<application>CVS</application> (Concurrent Versioning System)
do &os;. Uma vez que o código fonte local esta
atualizado, você pode compilar a nova versão do
<literal>kernel</literal> e dos aplicativos de nível
de usuário. Para maiores informações
sobre atualizações a partir do código
fonte veja <ulink
url="&url.base;/doc/en_US.ISO8859-1/books/handbook/updating-upgrading.html">
o capítulo sobre atualização</ulink> no
Handbook do &os;.</para>
<para>As atualizações binárias são
similares ao uso do <command>yum</command> ou
<command>apt-get</command> para atualizar sistemas &linux;. O
comando &man.freebsd-update.8; vai baixar e instalar as novas
atualizações. As atualizações
podem ser agendadas usando &man.cron.8;.</para>
<note>
<para>Se você utilizar o &man.cron.8; para agendar as
atualizações, por favor, certifique-se de
usar <command>freebsd-update cron</command> em seu
&man.crontab.1; para reduzir a possibilidade de que um
grande número de máquinas busquem as
atualizações todas ao mesmo tempo.</para>
<programlisting>0 3 * * * root /usr/sbin/freebsd-update cron</programlisting>
</note>
<para>O último método de atualização,
a partir dos discos de instalação, é um
processo bastante simples. Efetue o <literal>boot</literal>
a partir dos discos de instalação e selecione a
opção para atualizar.</para>
</sect1>
<sect1 id="procfs">
<title>procfs: Morto, mas vivo na memória</title>
<para>No &linux;, para determinar se o encaminhamento IP
está ativado, você pode olhar em
<filename>/proc/sys/net/ipv4/ip_forward</filename>. No &os;
você precisa usar o &man.sysctl.8; para ver esta e
outras opções do sistema, pois o &man.procfs.5;
tornou-se obsoleto nas versões mais recentes do &os;.
(Embora <command>sysctl</command> também esteja
disponível no &linux;.)</para>
<para>No exemplo do encaminhamento IP, você poderia usar o
seguinte comando para determinar se ele está ativado no
seu sistema FreeBSD:</para>
<screen>&prompt.user; <userinput>sysctl net.inet.ip.forwarding</userinput>
net.inet.ip.forwarding: 0</screen>
<para>A opção <option>-a</option> é
utilizada para listar todas as configurações
do sistema:</para>
<screen>&prompt.user; <userinput>sysctl -a</userinput>
kern.ostype: FreeBSD
kern.osrelease: 6.2-RELEASE-p9
kern.osrevision: 199506
kern.version: FreeBSD 6.2-RELEASE-p9 #0: Thu Nov 29 04:07:33 UTC 2007
root@i386-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC
kern.maxvnodes: 17517
kern.maxproc: 1988
kern.maxfiles: 3976
kern.argmax: 262144
kern.securelevel: -1
kern.hostname: server1
kern.hostid: 0
kern.clockrate: { hz = 1000, tick = 1000, profhz = 666, stathz = 133 }
kern.posix1version: 200112
...</screen>
<note>
<para>Alguns dos valores do <command>sysctl</command>
estão disponíveis somente para
leitura.</para></note>
<para>Existem ocasiões nas quais o <literal>procfs</literal>
é necessário, como na execução de
programas antigos, no uso do &man.truss.1; para rastrear
chamadas de sistema, e para possibilitar a <ulink
url="&url.base;/doc/en_US.ISO8859-1/books/handbook/linuxemu.html">
Compatibilidade Binária com Linux</ulink>.
(Embora a Compatibilidade Binária com Linux use seu
próprio <literal>procfs</literal>, &man.linprocfs.5;.)
Se você precisar montar o <literal>procfs</literal>,
você pode adicionar a seguinte entrada no
<filename>/etc/fstab</filename>:</para>
<screen>proc /proc procfs rw,noauto 0 0</screen>
<note>
<para><option>noauto</option> vai prevenir
<filename>/proc</filename> de ser montado automaticamente
durante o <literal>boot</literal>.</para></note>
<para>E então monte o <literal>procfs</literal> com:</para>
<screen>&prompt.root; <userinput>mount /proc</userinput></screen>
</sect1>
<sect1 id="commands">
<title>Comandos Comuns</title>
<sect2 id="packageCommands">
<title>Gerenciamento de Pacotes</title>
<para>
<informaltable frame="none" pgwide="1">
<tgroup cols="3">
<thead>
<row>
<entry>Comando no &linux; (Red Hat/Debian)</entry>
<entry>Equivalente no &os;</entry>
<entry>propósito</entry>
</row>
</thead>
<tbody>
<row>
<entry><command>yum install <replaceable>pacote</replaceable></command> / <command>apt-get install <replaceable>pacote</replaceable></command></entry>
<entry><command>pkg_add -r <replaceable>pacote</replaceable></command></entry>
<entry>Instala o <replaceable>pacote</replaceable> a partir do repositório remoto</entry>
</row>
<row>
<entry><command>rpm -ivh <replaceable>pacote</replaceable></command> / <command>dpkg -i <replaceable>pacote</replaceable></command></entry>
<entry><command>pkg_add -v <replaceable>pacote</replaceable></command></entry>
<entry>Instala um pacote</entry>
</row>
<row>
<entry><command>rpm -qa</command> / <command>dpkg -l</command></entry>
<entry><command>pkg_info</command></entry>
<entry>Lista de pacotes instalados</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</sect2>
<sect2 id="systemCommands">
<title>Gerenciamento do Sistema</title>
<para>
<informaltable frame="none" pgwide="1">
<tgroup cols="3">
<thead>
<row>
<entry>Comando no &linux;</entry>
<entry>Equivalente no &os;</entry>
<entry>Propósito</entry>
</row>
</thead>
<tbody>
<row>
<entry><command>lspci</command></entry>
<entry><command>pciconf</command></entry>
<entry>Lista de dispositivos PCI</entry>
</row>
<row>
<entry><command>lsmod</command></entry>
<entry><command>kldstat</command></entry>
<entry>Lista de módulos do <literal>kernel</literal>
carregados</entry>
</row>
<row>
<entry><command>modprobe</command></entry>
<entry><command>kldload</command> / <command>kldunload</command></entry>
<entry>Carrega/descarrega módulos do
<literal>kernel</literal></entry>
</row>
<row>
<entry><command>strace</command></entry>
<entry><command>truss</command></entry>
<entry>Rastrear chamadas de sistema</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</sect2>
</sect1>
<sect1 id="conclusion">
<title>Conclusão</title>
<para>Esperamos que este documento tenha fornecido para
você o suficiente para começar a utilizar o
&os;. Certifique-se de dar uma olhada no <ulink
url="&url.base;/doc/en_US.ISO8859-1/books/handbook/index.html">
Handbook do &os;</ulink> para se aprofundar nos
tópicos abordados, assim como nos muitos
tópicos não mencionados neste documento.</para>
</sect1>
</article>
|