Em Seção 3, “O Subsistema rc
e os Sistemas de Arquivos Read-Only”, foi apontado que o sistema de arquivos /var
construído pelo /etc/rc.d/var
e a presença de um sistema de arquivos raiz read-only causa problemas com muitos pacotes de software comuns usados com o FreeBSD. Neste artigo, serão fornecidas sugestões para a execução bem-sucedida do cron, do syslog, instalações de ports e do servidor Web Apache.
Na inicialização, o /var
é preenchido pelo /etc/rc.d/var
usando a lista disponível em /etc/mtree/BSD.var.dist
, então o cron
, o cron/tabs
, at
, e alguns outros diretórios padrões são criados.
No entanto, isso não resolve o problema de manter as crontabs entre nas reinicializações. Quando o sistema for reinicializado, o sistema de arquivos /var
que está na memória desaparecerá e todas as crontabs que você tenha nele também desaparecerão. Portanto, uma solução seria criar crontabs para os usuários que precisam delas, montar seu sistema de arquivos /
como read-write e copiar estas crontabs para algum lugar seguro, como /etc/tabs
, em seguida, adicione uma linha ao final do /etc/rc.initdiskless
que copie estes crontabs para /var/cron/tabs
depois que o diretório for criado durante inicialização do sistema. Você também pode precisar adicionar uma linha que altere modos e permissões nos diretórios criados e nos arquivos copiados com /etc/rc.initdiskless
.
O syslog.conf
especifica os locais de certos arquivos de log que existem em /var/log
. Esses arquivos não são criados pelo /etc/rc.d/var
na inicialização do sistema. Portanto, em algum lugar do /etc/rc.d/var
, logo após a seção que cria os diretórios em /var
, você precisará adicionar algo como isto:
#
touch /var/log/security /var/log/maillog /var/log/cron /var/log/messages
#
chmod 0644 /var/log/*
Antes de discutir as alterações necessárias para usar com êxito a árvore de ports, é necessário um lembrete sobre a natureza read-only dos seus sistemas de arquivos na mídia flash. Como eles são read-only, você precisará montá-los temporariamente para read-write usando a sintaxe de montagem mostrada em Seção 3, “O Subsistema rc
e os Sistemas de Arquivos Read-Only”. Você sempre deve remontar esses sistemas de arquivos no modo read-only quando tiver terminado qualquer manutenção - gravações desnecessárias na mídia flash podem reduzir consideravelmente sua vida útil.
Para tornar possível entrar em um diretório do ports e executar com sucesso o comando make
install
, devemos criar um diretório de pacotes em um sistema de arquivos que não esteja localizado na memória o qual manterá o controle dos nossos pacotes entre as reinicializações . Como é necessário montar seus sistemas de arquivos como read-write para a instalação de um pacote, é sensato supor que uma área na mídia flash também possa ser usada para que as informações do pacote sejam gravadas.
Primeiro, crie o diretório do banco de dados de pacotes. Ele fica normalmente em /var/db/pkg
, mas não podemos colocá-lo lá, pois ele irá desaparecer toda vez que o sistema for inicializado.
#
mkdir /etc/pkg
Agora, adicione uma linha ao arquivo /etc/rc.d/var
que vincule o /etc/pkg
ao /var/db/pkg
. Um exemplo:
#
ln -s /etc/pkg /var/db/pkg
Agora, sempre que montar seus sistemas de arquivos como read-write e instalar um pacote, o make
install
funcionará e as informações do pacote serão gravadas com êxito em /etc/pkg
(porque o sistema de arquivos será, naquele momento, montado como read-write) que estará sempre disponível para o sistema operacional como /var/db/pkg
.
As etapas nesta seção são necessárias apenas se o Apache estiver configurado para gravar suas informações de pid ou log fora do /var
. Por padrão, o Apache mantém seu arquivo pid em /var/run/httpd.pid
e seus arquivos de log em /var/log
.
Agora é assumido que o Apache mantém seus arquivos de log em um diretório
fora do apache_log_dir
/var
. Quando esse diretório reside em um sistema de arquivos read-only, o Apache não poderá salvar nenhum arquivo de log e pode ter problemas para funcionar. Se assim for, é necessário adicionar um novo diretório à lista de diretórios em /etc/rc.d/var
para criar no /var
e vincular
ao apache_log_dir
/var/log/apache
. Também é necessário definir permissões e propriedade neste novo diretório.
Primeiro, adicione o diretório log/apache
à lista de diretórios a serem criados em /etc/rc.d/var
.
Segundo, adicione estes comandos ao /etc/rc.d/var
após a seção de criação do diretório:
#
chmod 0774 /var/log/apache
#
chown nobody:nobody /var/log/apache
Por fim, remova o diretório
existente e substitua-o por um link:apache_log_dir
#
rm -rf
apache_log_dir
#
ln -s /var/log/apache
apache_log_dir
All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/
Questions that are not answered by the
documentation may be
sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.