Transcrição do áudio
É coleguinha, agora nós vamos então fazer a instalação de um pacote. Qual é natural o que do passado? Acreditava-se que isso aqui não era o baixo nível que conhecemos. Tá, porque o mundo ficou no tela? O lance de você baixar um código fonte, compilar na sua máquina, para a sua máquina, tem vantagens, porque a compilação é para a sua máquina. Então vai utilizar todos os flags TPP da sua máquina. E ele vai ser uma compilação para a sua máquina, usando todo o poder computacional da sua máquina. Não para uma máquina genérica, como um 2100, por exemplo. Legal. Aí é que tá, vamos lá. Então nós vamos nos faz mais aquilo, rodar o make, instalar. Hoje nós enxergamos mais isso lá no desenvolvimento e onde nós liberamos os pacotes. Então vamos lá. Você não percebeu? Eu já comecei a colocar um pouquinho. Nós vamos fazer aqui um pacote, chamando Debe Relu, a versão zero. E tem já uma corretiva de saída 1 para 2, então já teve uma corretiva. Gerenamente nós corrigimos aqui e incrementamos aqui. E aqui nós incrementamos quando lançamos uma novidade, uma mudança muito pesada, novas funcionalidades ficam aqui. Você já aprendeu a gerar isso aqui? Então vamos lá. Nós temos então para criar o pacote, naturalmente também instalar o pacote, é considerado hoje de baixo nível, a instalação do pacote Debe Ampul DPCG. Bom vamos lá. O problema disso é que você tem que conhecer todas as dependências de um determinado pacote. Ah, isso é difícil. Tem pacote que depende de pacote. Bom, por isso que é o sofrimento instalar com o DPCG. Mas quando programamos e sabemos que vamos disponibilizar fora de um repositorio, nós fazemos grandes pacotes. Em vez de incorporar uma biblioteca dinamicamente linkada, nós incorporamos os arquivos .h e compilamos para ter menos dependência do sistema operacional. Logo precisar de menos biblioteca. Então quando nós programamos lá na empresa, nós pensamos nesses pontos. Eu acredito que você deve estar assim, nunca pensei disso e olhei para o céu. Agora deu uma sorte. Nunca pensei isso e adivinha meu coleguinha. Sempre deu o que certo. Você não viu o seu cliente sofrer talvez. Boa, olhei para cima e encontrei alguma caneca de café que está aqui há dias. Estude é fechado. Se não, entra barata na geladeira. Então vamos lá. O DPCG é um pacote com vários utilitários. Desde reconfigurar, invocar o DPCG para fazer alguma coisa, como por exemplo, instalar, remover pacotes. Então você pode fazer com o DPCG. Vamos lá. Só que, naturalmente, pense assim, o Linux vai fazer instalação. E ele não pode adivinhar as coisas. Nós já tivemos programação estruturada, programação orientada aspecto, programação orientada objetos, depois da orientação aspecto. E agora, programação orientada adivinhança. Aonde o programa tem que adivinhar o que o usuário quer. O cenário maluco. Mas eu já vi muito disso. O Linux não vai inventar a moda. Ele vai colocar o seu pacote de acordo com que você definir. Então olha só. Está tudo maiúsculo. Porque está tudo maiúsculo porque ele não vai colocar esse diretório no seu sistema de arquivos. Todo mundo sabe que os sistemas de arquivos, os diretores são todos em letras minúsculas. Todo mundo sabe disso. Não tem espaço, não é isso? Evita-se a underline. Não é isso? Legal. Bom, vamos lá. Então o estador, ele olha assim, deve em tudo maiúsculo. Então ele não vai encaixotar isso no sistema que está sendo instalado. Mas o SRE e o SREBim vai. Para aí, provavelmente, o usuário vai ter lá, né? O SRE e o SREBim, ele vai ter lá normalmente. Beleza? Então você tem que primeiro criar os diretores. Os diretores que vão ser feitos ali, a instalação. E o diretório aonde nós vamos colocar um arquivo de definição para o Linux do seu cliente saber o que fazer. Então o primeiro arquivo que você vai criar é um capital de control. Ele fica dentro de Debian. E lá então nós colocamos as informações básicas do pacote. Então essas informações aqui que vão parar no banco de dados de pacote do sistema opressional. Você coloca o nome, a versão, a arquitetura, sistema ocidental, prioridade, quem é o desenvolvedor e uma descrição. Na verdade tem mais campinhos. Beleza? Eu acredito que isso aqui é o básico que você deve ter em um pacote. Legal? Você cria esse control e coloca ele dentro do diretório Debian. Então está aqui, né? Existem algumas opções e tem mais, tá? Bom, agora dentro do pacote Debian você pode criar o preinst, posinst também, entre outros, tá? No caso eu preciso apenas de um preinst. Vamos lá. O nosso programa vai se chamar HELLO, certo? O nosso programa vai estar dentro de USRBIN, certo? E se já existir? Se existir, você tem que remover aquilo que já existia. Então sudo rm-fusrbin-hello para remover o pacote. E logo em seguida, não precisaria do sudo, tá? Agora que eu estou vendo, eu acho que é o vício da programação com sudo. Rm-fusrbin-hello, que seria a remoção, seria suficiente. Por quê? A instalação já vai ser feita com o sudo mesmo, entende? Bom, não vai dar nenhum erro, mas eu acho que é a mesma coisa que falar. Muito maior de bom, de grande. Entende? Complicado, né? Então o preinst vai ser executado antes da instalação. Legal? Então vamos lá, nós temos um arquivo aqui. Ah, eu esqueci na imagem anterior de colocar aqui o CAMD64 ou CSFIS86. Nós temos que informar isso também, beleza? Para ele saber para que arquitetura e família foi compilado o negócio. O control, o preinst, os dois arquivos estão lá em cima. O bin com o programa apaguei o script. Ou seja, apaguei o código em C. Beleza? Apaguei também o make install. Ou só isso aí. Legal. Então é aqui onde meus alunos sempre erram, tá? Porque eles sempre executam o comando do diretor, estando no diretório errado. Beleza? Eu pedi você que criasse o diretório dentro do diretório do usuário. Então tem que navegar CD-ROM, os elinux, pacotes, é isso? Você tem que entrar lá dentro do pacotes e aí você executa um dpkg traço DEB, build reload 00AMD64. Barra. Então ele vai dar um rebuild, a gente faz um rebuild, isso que é o build apenas, tá? Então ele vai gerar um arquivo .deb. Então olha só, como ficou, certo? Então você navegou até pacotes, CD, só CD, da unenter, depois CD pacotes, entrou em pacotes. Executo build no Debian, no dpkg desculpe. E aí ele vai criar naquele mesmo diretório, onde tem um reload 00AMD64, ele vai criar agora um arquivo .deb. Adivinha, era tudo que você precisava para instalar. Como o seu código é apenas um reload e no seu reload você não precisou de, como eu posso dizer, nenhum pacote especial, você não precisa de colocar nenhum pacote especial para o cliente, tá bom? Legal. Agora como que eu instalo isso? Simples. Fluido, dpkg traço e de instal, reload 00AMD64, o .deb, adivinha, vai ser feita a instalação. Você está instalando um pacote que você fez, eu poderia muito bem ir na internet, pegar lá o pacote do sublime e mudar você a instalar o sublime, eu faço da alô, te contar a internet, o concur, o seu RL, e aí você faz a instalação, acabou, não cara, isso nem você a fazer, você viu a estrutura, você viu a complexidade e discutimos questões tecnológicas. Legal? Lembra-se que dpkg traço e traço, info, reload, .deb. Olha lá, você consegue obter informações sobre o pacote, quem foi que desenvolveu, quantos bytes. Bom, também você pode observar, você pode ir lá no diretório, dpkg e info, contem alguns arquivos conforme a figura abaixo, aonde você pode localizar o varlibdpkg e info reload, olha lá, o list, o md5, esse aqui é o md5 que foi feito na instalação, então seu arquivo executável for corrompido, vai ser diferente de md5 aqui, tá? E pre-inst, se você quiser listar dpkg, traço query, traço l e você poderia jogar num wrap e fazer um filtro, e assim que nós procuramos se algum pacote já está instalado, dpkg query, list, e aí colocamos o filtro do que queremos. Próxima aula, vou falar sobre remover pacotes com dpkg, até lá, agora, po, vacilão, agora que eu estou vendo, remove, e purg, remover, remove, ele vai remover o executável, remover o pacote, mas não os arquivos de configuração que ele gerou, os pontos conf da vida, já o purg, isso elimina tudo, os pontos conf da vida que ele gerou, os binários, tudo, sume tudo, o log é um problema, tá passando o debian 13 por mudanças no logger, tá? Muito impulsionado ali pelaquela falha de log crítico que deu no Java e no debian também, no caso Linux, deixa eu dar um gole no meu café, esse café eu sei que está esperando aqui há tantos dias, não custa lá eliminar ele agora, né? A feta é caro, já batizado de barata não tem problema. Aqui então são as informações que você consegue obter no log, nem sempre você vai encontrar o log, o log foi modificado, dá uma olhadinha aí, você vai usar o teio, né, para você pegar a conta dele, né? Pega a calda. Bom, meta dados de pacote, você bora hoje em dia, você pode visitar o debian, né? Que facilita pra caramba, hoje tudo web, não tem mais dois de cabeça, né? Mas caso você está ali sem internet, sem nada, você pode usar um dpkg trações, esse maiúsculo no nome do pacote, ele vai trazer algumas informações sobre o pacote, provavelmente você terá que filtrar a informação que você precisa, provavelmente com um web, mas só você precisando, no momento certo, você vai saber o que procurar de informação de um pacote. Mas tchau!