como usar pacotes personalizados em golang?
<p>estou tentando criar e usar um pacote personalizado no go. é provavelmente algo muito óbvio, mas não consigo encontrar muita informação sobre isso. basicamente, eu tenho esses dois arquivos na mesma pasta:</p><p><strong> mylib.go </strong></p><pre><code>package mylib type sometype struct { } </code></pre><p><strong> main.go </strong></p><pre><code>package main import ( "mylib" ) func main() { } </code></pre><p>quando tento <code>go run main.go</code>, recebo este erro:</p><pre><code>main.go:4:2: import "mylib": cannot find package </code></pre><p>eu tentei executar <code>go build mylib.go</code> primeiro, mas não parece estar fazendo nada (nenhum arquivo gerado, nenhuma mensagem de erro). então, alguma ideia de como eu poderia fazer isso?</p>
<p>primeiro, certifique-se de ler e entender o documento <a href="http://golang.org/doc/code.html">&quot;como escrever código go&quot;</a> .</p><p>a resposta real depende da natureza do seu &quot;pacote personalizado&quot;.</p><p>se ele for de uso geral, considere o uso do chamado <a href="http://code.google.com/p/go-wiki/wiki/githubcodelayout">&quot;layout de código do github&quot;</a> . basicamente, você torna sua biblioteca um projeto <code>go get</code>-table separado.</p><p>se a sua biblioteca é para uso interno, você poderia ir assim:</p><ol> <li>coloque o diretório com arquivos de biblioteca no diretório do seu projeto.</li> <li>no restante do seu projeto, consulte a biblioteca usando seu caminho relativo à raiz de sua área de trabalho que contém o projeto.</li> </ol><p>para demonstrar:</p><pre><code>src/ myproject/ mylib/ mylib.go ... main.go </code></pre><p>agora, no <code>main.go</code> de nível superior, você poderia <code>import "myproject/mylib"</code> e funcionaria bem.</p>
<p> <a href="http://ubuntuforums.org/showthread.php?t=910717">este</a> é um bom como fazer para criar um arquivo <code>.deb</code> básico. ele é adequado para criar arquivos <code>.deb</code> para uso pessoal, mas não suficientemente rigorosos se você quiser que o pacote seja incluído no debian/ubuntu - para isso você deve ler o <a href="http://www.debian.org/doc/maint-guide/">guia do novo mantenedor debian</a> e/ou o - <a href="http://packaging.ubuntu.com/html/">guia de empacotamento do ubunt</a> (que eu acredito que você já tenha tentado).</p><p>uma boa ferramenta para verificar se o arquivo <code>.deb</code> está em conformidade é <code>lintian</code> (instalável a partir dos repositórios).</p><p>houve duas sessões aqui no ask ubuntu chatrooms.</p><p> <a href="http://chat.stackexchange.com/rooms/663/conversation/the-basics-of-packaging-on-ubuntu-packaging-part-1">o básico de embalagem no ubuntu (embalagem: parte 1)</a> </p><p> <a href="http://chat.stackexchange.com/rooms/663/conversation/ubuntu-packaging-for-launchpad-ppas-packaging-part-2">embalagens do ubuntu para ppas do launchpad (embalagem: parte 2)</a> </p> oi andrei! o usethis::use\_pipe() (assim como os use\_package() ) deve ser usado no console, no contexto de um pacote. caso você queira guardar o código (para consulta posterior) recomendo deixar comentado.

a mensagem de erro diz que o pipe não foi encontrado, ou seja, ele não está carregado. a mensa… <p>então o que eu fiz é isso:</p><p>eu criei um arquivo de texto simples e escrevi o seguinte script bash para um programa de tradução em latim que eu uso, chamado <a href="http://archives.nd.edu/whitaker/words.htm">words</a> :</p><pre><code>#! /bin/bash cd ~/latin/latin.words/ ./words </code></pre><p>depois de salvá-lo na minha pasta pessoal, tornei-o executável, o que pode ser feito de duas maneiras. cliquei com o botão direito, escolha <strong>properties-&gt; permissions</strong>, e marque a caixa <strong>"execute"</strong> para seu nome de usuário. ou eu poderia ter usado a linha de comando e inserido <code>chmod +x file.name</code>.</p><p>então eu cliquei com o botão direito no painel e selecionei <strong>add to panel</strong>, selecione <strong>custom application launcher.</strong> eu digitei o nome, neste caso <strong>words</strong>, e o caminho para o script que acabei de escrever no campo <strong>command</strong>. como <code>words</code> é um programa de linha de comando, selecionei <strong>program in terminal</strong> no menu suspenso. então, cliquei no ícone e selecionei um apropriado, e com isso terminei de adicioná-lo ao painel.</p><p>em seguida, cliquei em <strong>system-&gt; preferences-&gt; main</strong> menu, selecionei a pasta na qual queria colocar o iniciador de menu e, em seguida, cliquei em <strong>add item.</strong> eu então repeti o processo i acabado de executar, acima.</p><p>e agora eu tenho um lançador personalizado que funciona para um programa que deve ser executado a partir de seu próprio diretório, tanto no meu painel quanto no menu!</p> <p>oi felipe, o garbage collector do go está embutido no core da linguagem, isso significa que está otimizado para os recursos da linguagem. tornando o gerenciamento de memória de go muito mais rápido que o das demais linguagens.</p>
<p>memory safe: o go tem uma gestão própria de memória e threads transparente ao programador, fazendo a gestão de forma automática, evitando os famosos problemas da linguagem c de alocação e invasão de memória.</p> galera consegui, depois de muita pesquisa deu certo. 
primeiro digitei esses dois comandos no terminal 
sudo apt update && sudo apt full-upgrade 
sudo apt install python-gi python3-gi python-gobject 
depois fiz o download do arquivo .deb e fiz a instalação normal. 
[http://packages.linuxmint.com/pool…](http://packages.linuxmint.com/pool/main/m/mintstick/?fbclid=iwar0nzvltkqvbpwyams9p7sdefvh55-nxu78v5n8l4b9uj5-nl20fnuv0e0w) boa tarde @@@sofia2 , como indicado pelo @@@beme , experimente remover os produtos meo associados à sua área de cliente e voltar a associar os mesmos. se continuar a não conseguir associar o meo go, envie-nos o nif do titular do serviço meo, o seu nº de contacto e o e-mail de acesso à área de cliente. envie estes dados por mensagem privada, colocando no assunto da mensagem a referência nº 3-33838279356. <p>oi guilherme, tudo bem?</p>
<p>veja que você criou um objeto do sistema na seguinte linha:</p>
<pre class="prettyprint"><code>sistemainterno sistemainterno &#61; new sistemainterno();</code></pre><p>mas ao tentar utilizar o método <strong>logar</strong> você está utilizando a própria classe ao invés do objeto que você criou:</p>
<pre class="prettyprint"><code>sistemainterno.logar(roberta, &#34;123&#34;);</code></pre><p>tente trocar de <strong>sistemainterno.logar(roberta, &#34;123&#34;);</strong> para <strong>sistemainterno.logar(roberta, &#34;123&#34;);</strong></p> Oi João52,
  

  
O que você não tem é a chave do pacote da Microsoft que só é liberada ao usuário que comprou o programa. Não tem outro jeito se você não comprou. Agora se comprou e não recebeu a chave, solicite ao suporte o reenvio dela. Você receberá rapidamente, se enviar as coordenadas da compra. 
  

  
Sinto muito, mas só comprando o pacote <p>um fator importante para que as atualizações funcionem sem problemas é não fazer nada que confunda o gerenciador de pacotes. ou seja, você não deve tocar em áreas do sistema que o gerente de pacotes espera que sejam seu domínio. alguns exemplos concretos.</p><p>se você mesmo compilar/instalar programas usando o ./configure; faço; make install install, não os coloque diretamente em <code>/usr</code>. é melhor usar <code>/usr/local</code> ou <code>/opt</code>, como alternativa (ainda melhor) para lançar seus próprios pacotes deb.</p><p>ao remover pacotes, você pode fazer uma remoção normal ou uma limpeza explícita. a menos que você limpe o pacote, o gerenciador de pacotes pode deixar os arquivos para trás em <code>/etc</code>, <code>/var</code> e assim por diante. não exclua esses arquivos você mesmo, pois o gerenciador de pacotes espera que eles estejam lá. em vez disso, use o gerenciador de pacotes para limpar explicitamente os restos do pacote.</p><p>usar o pacote deb de repositórios de terceiros deve ser teoricamente seguro, assumindo que eles sejam cuidadosamente construídos etc. no entanto, para estar do lado seguro, você pode querer considerar remover esses pacotes e/ou repositórios antes de executar uma atualização para uma nova versão do ubuntu.</p><hr><p>ok, deixe-me ver se posso adicionar mais carne a esta resposta ...</p><p>primeiro de tudo, tudo o que você faz no diretório inicial é perfeitamente seguro em relação ao gerenciador de pacotes. ele nunca tocará em nada em <code>/home</code>.</p><p>(obviamente, você ainda pode causar muita confusão ao fazer coisas ruins no diretório inicial. felizmente, isso geralmente é recuperado removendo os arquivos de configuração quebrados do diretório inicial e permitindo que eles sejam recriados por padrão no diretório inicial. próximo uso: observe que a recriação automática da configuração padrão é válida apenas para seus arquivos de configuração pessoal, não para todo o sistema em <code>/etc</code>)</p><p>no papel de um usuário de desktop (avançado), acho que a criatividade mais comum em todo o sistema será a instalação de aplicativos extras, bibliotecas, modos emacs, etc.? novamente, a parte realmente importante é sempre colocar nenhum item do pacote deb em <code>/usr/local</code> em vez de em <code>/usr</code>; usar <code>/usr/local/bin</code> em vez de <code>/usr/bin</code>, usar <code>/usr/local/share/emacs/23.1</code> em vez de <code>/usr/share/emacs/23.1</code> e assim por diante.</p><p>depois de começar a brincar com os daemons do servidor, em breve você será confrontado com a configuração geral do sistema em <code>/etc</code>. embora você geralmente possa modificar arquivos em <code>/etc</code>, "nunca" deve realmente remover um arquivo ou diretório, a menos que tenha sido você quem o criou. da mesma forma, você deve ter cuidado ao criar novos arquivos, caso eles colidam posteriormente com um arquivo de configuração que o gerenciador de pacotes deseja criar. dito isto, definitivamente existem arquivos que você pode (e deve) ser criado em <code>/etc</code>. um dos exemplos mais comuns é definir o apache virtualhosts em <code>/etc/apache2/sites-available</code>.</p><p>pode haver momentos em que você deseja criar arquivos ou diretórios em <code>/var</code>. embora seja um lugar completamente diferente de <code>/etc</code>, ainda considere as mesmas regras sobre ser cuidadoso e fazer as coisas sob consideração individual.</p><p>caso você queira saber mais, não fará mal dar uma olhada no <a href="http://www.pathname.com/fhs/">padrão de hierarquia do sistema de arquivos (fhs)</a> ou no <a href="http://www.debian.org/doc/debian-policy/">manual de políticas debian</a> . embora possa ser um exagero em responder à sua pergunta original, ainda é uma boa leitura.</p> em meu manjaro, instalei o pacote [steam-manjaro](https://forum.manjaro.org/t/difference-between-steam-manjaro-and-steam-native/81173/2) que, consequentemente também usa como dependência o pacote steam-native e também o pacote game-devices-udev, que por sua vez fornece o pacote steam-native-runtime.

desta forma posso usar o steam com as bibliotecas nativas do manjaro e ao mesmo tempo s…